[PATCH 6/7] os: Hide the Connection{In, Out}put implementation details

walter harms wharms at bfs.de
Fri Sep 21 01:15:05 PDT 2012



Am 20.09.2012 22:56, schrieb Adam Jackson:
> Reviewed-by: Daniel Stone <daniel at fooishbar.org>
> Signed-off-by: Adam Jackson <ajax at redhat.com>
> ---
>  os/connection.c |    4 ++--
>  os/io.c         |   21 +++++++++++++++++++--
>  os/osdep.h      |   18 ++----------------
>  3 files changed, 23 insertions(+), 20 deletions(-)
> 
> diff --git a/os/connection.c b/os/connection.c
> index 4561caa..6cd8bcf 100644
> --- a/os/connection.c
> +++ b/os/connection.c
> @@ -1038,8 +1038,8 @@ CloseDownConnection(ClientPtr client)
>      if (FlushCallback)
>          CallCallbacks(&FlushCallback, NULL);
>  
> -    if (oc->output && oc->output->count)
> -        FlushClient(client, oc, (char *) NULL, 0);
> +    if (oc->output)
> +	FlushClient(client, oc, (char *) NULL, 0);

  Why does NULL need a cast ?

re,
 wh
>  #ifdef XDMCP
>      XdmcpCloseDisplay(oc->fd);
>  #endif
> diff --git a/os/io.c b/os/io.c
> index e44db39..015f137 100644
> --- a/os/io.c
> +++ b/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, *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,8 +862,8 @@ FlushClient(ClientPtr who, OsCommPtr oc, const void *__extraBuf, int extraCount)
>      long notWritten;
>      long todo;
>  
> -    if (!oco)
> -        return 0;
> +    if (!oco || !oco->count)
> +	return 0;
>      written = 0;
>      padsize = padding_for_int32(extraCount);
>      notWritten = oco->count + extraCount + padsize;
> diff --git a/os/osdep.h b/os/osdep.h
> index 55db16f..0ccdb62 100644
> --- a/os/osdep.h
> +++ b/os/osdep.h
> @@ -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;
>  


More information about the xorg-devel mailing list