[syslog-ng] [PATCH] afsocket: Fix unix-dgram initialisation

Balazs Scheidler bazsi at balabit.hu
Tue May 1 13:44:40 CEST 2012


On Fri, 2012-04-20 at 18:06 +0200, Gergely Nagy wrote:
> When initializing an unix-dgram socket, set self->fd to the acquired
> socket FD, so that fds inherited from systemd actually get used and
> polled on.
> 
> Signed-off-by: Gergely Nagy <algernon at balabit.hu>
> ---
>  modules/afsocket/afsocket.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/modules/afsocket/afsocket.c b/modules/afsocket/afsocket.c
> index 5b192f4..c1bee5c 100644
> --- a/modules/afsocket/afsocket.c
> +++ b/modules/afsocket/afsocket.c
> @@ -679,7 +679,7 @@ afsocket_sd_init(LogPipe *s)
>            if (sock == -1 && !afsocket_open_socket(self->bind_addr, !!(self->flags & AFSOCKET_STREAM), &sock))
>              return self->super.super.optional;
>          }
> -      self->fd = -1;
> +      self->fd = sock;
>  
>        if (!self->setup_socket(self, sock))
>          {

hmm... this is exactly the case where a variable with a better name
would have prevented some effort.

self->fd is the _listener_ fd which a SOCK_DGRAM style socket lacks.
That's why it is set to -1

The dgram socket is processed as if it was a single connection, a couple
of lines below this hunk, there's a call to
afsocket_sd_process_connection(), which should initialize an
AFSocketSourceConnection object, which in turn should start polling that
fd.

What was your intent here?

-- 
Bazsi




More information about the syslog-ng mailing list