os: Hide the Connection{In,Out}put implementation details

Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson 2011-06-17 14:03:01 -04:00
parent e2c7d70e5d
commit 092c57ab17
3 changed files with 23 additions and 20 deletions

View File

@ -1038,7 +1038,7 @@ CloseDownConnection(ClientPtr client)
if (FlushCallback)
CallCallbacks(&FlushCallback, NULL);
if (oc->output && oc->output->count)
if (oc->output)
FlushClient(client, oc, (char *) NULL, 0);
#ifdef XDMCP
XdmcpCloseDisplay(oc->fd);

19
os/io.c
View File

@ -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, *ConnectionInputPtr;
typedef struct _connectionOutput {
struct _connectionOutput *next;
unsigned char *buf;
int size;
int count;
} ConnectionOutput, *ConnectionOutputPtr;
static ConnectionInputPtr AllocateInputBuffer(void);
static ConnectionOutputPtr AllocateOutputBuffer(void);
@ -845,7 +862,7 @@ FlushClient(ClientPtr who, OsCommPtr oc, const void *__extraBuf, int extraCount)
long notWritten;
long todo;
if (!oco)
if (!oco || !oco->count)
return 0;
written = 0;
padsize = padding_for_int32(extraCount);

View File

@ -107,22 +107,8 @@ typedef Bool (*AddAuthorFunc) (unsigned name_length, const char *name,
unsigned data_length, char *data);
#endif
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, *ConnectionInputPtr;
typedef struct _connectionOutput {
struct _connectionOutput *next;
unsigned char *buf;
int size;
int count;
} ConnectionOutput, *ConnectionOutputPtr;
typedef struct _connectionInput *ConnectionInputPtr;
typedef struct _connectionOutput *ConnectionOutputPtr;
struct _osComm;