aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/os/io.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-10-08 08:09:46 +0200
committermarha <marha@users.sourceforge.net>2012-10-08 08:09:46 +0200
commitde8397bc3d010bba24ec0c4d2e6249a769a86fc7 (patch)
treea65adde1a897bd07e6009b14a23ec87f14793cf9 /xorg-server/os/io.c
parent0130346adbce7e6b2422429887fc46c76806d845 (diff)
downloadvcxsrv-de8397bc3d010bba24ec0c4d2e6249a769a86fc7.tar.gz
vcxsrv-de8397bc3d010bba24ec0c4d2e6249a769a86fc7.tar.bz2
vcxsrv-de8397bc3d010bba24ec0c4d2e6249a769a86fc7.zip
pixman libxcb mesa xserver xkeyboard-config git update 8 oct 2012
xserver: 09f1e5b15b769e1122f0a8d7cae0820038992312 libxcb: 4ffe54f69049e6792a35a287fd9ff83abbd4fd8d mesa: 86de501f14f11f1e993c8703c0d69bdf1f6c7835 xkeyboard-config: 0a21bb5a28018902a6252fccb620d7dff7e67175 pixman: 3d81d89c292058522cce91338028d9b4c4a23c24
Diffstat (limited to 'xorg-server/os/io.c')
-rw-r--r--xorg-server/os/io.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/xorg-server/os/io.c b/xorg-server/os/io.c
index e44db3933..2f091c417 100644
--- a/xorg-server/os/io.c
+++ b/xorg-server/os/io.c
@@ -82,6 +82,23 @@ SOFTWARE.
CallbackListPtr ReplyCallback;
CallbackListPtr FlushCallback;
+typedef struct _connectionInput {
+ struct _connectionInput *next;
+ char *buffer; /* contains current client input */
+ char *bufptr; /* pointer to current start of data */
+ int bufcnt; /* count of bytes in buffer */
+ int lenLastReq;
+ int size;
+ unsigned int ignoreBytes; /* bytes to ignore before the next request */
+} ConnectionInput;
+
+typedef struct _connectionOutput {
+ struct _connectionOutput *next;
+ unsigned char *buf;
+ int size;
+ int count;
+} ConnectionOutput;
+
static ConnectionInputPtr AllocateInputBuffer(void);
static ConnectionOutputPtr AllocateOutputBuffer(void);
@@ -846,10 +863,13 @@ FlushClient(ClientPtr who, OsCommPtr oc, const void *__extraBuf, int extraCount)
long todo;
if (!oco)
- return 0;
+ return 0;
written = 0;
padsize = padding_for_int32(extraCount);
notWritten = oco->count + extraCount + padsize;
+ if (!notWritten)
+ return 0;
+
todo = notWritten;
while (notWritten) {
long before = written; /* amount of whole thing written */