Syslog Unix socket patch

Nils Hermansson 3tnica at gmail.com
Tue Oct 27 19:21:46 UTC 2015


Created a new patch as disabling hostame as a configuration option.

# HG changeset patch
# User Nils Hermansson <3tnica at gmail.com>
# Date 1445973553 -3600
#      Tue Oct 27 20:19:13 2015 +0100
# Node ID 7e4f788192183a3053cd9478ee136bad269a2375
# Parent  f1424eef1966c966e5403c44e3d9470e0af5b7e9
Syslog configuration for disabling sending of hostname.
hostname=(on/off) default on

diff -r f1424eef1966 -r 7e4f78819218 src/core/ngx_syslog.c
--- a/src/core/ngx_syslog.c     Tue Oct 27 16:47:30 2015 +0300
+++ b/src/core/ngx_syslog.c     Tue Oct 27 20:19:13 2015 +0100
@@ -42,6 +42,7 @@
     peer->pool = cf->pool;
     peer->facility = NGX_CONF_UNSET_UINT;
     peer->severity = NGX_CONF_UNSET_UINT;
+    peer->hostname = NGX_CONF_UNSET_UINT;

     if (ngx_syslog_parse_args(cf, peer) != NGX_CONF_OK) {
         return NGX_CONF_ERROR;
@@ -53,6 +54,10 @@
         return NGX_CONF_ERROR;
     }

+    if (peer->hostname == NGX_CONF_UNSET_UINT) {
+        peer->hostname = 1; /* enabled */
+    }
+
     if (peer->facility == NGX_CONF_UNSET_UINT) {
         peer->facility = 23; /* local7 */
     }
@@ -193,6 +198,12 @@

             peer->tag.data = p + 4;
             peer->tag.len = len - 4;
+        } else if (ngx_strncmp(p, "hostname=", 9) == 0) {
+               if (ngx_strcmp(p + 9, "off") == 0) {
+                    peer->hostname = 0;
+               } else {
+                    peer->hostname = 1;
+                }

         } else {
             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
@@ -220,6 +231,11 @@

     pri = peer->facility * 8 + peer->severity;

+    if (peer->hostname == 0) {
+        return ngx_sprintf(buf, "<%ui>%V %V: ", pri,
&ngx_cached_syslog_time,
+                           &peer->tag);
+    }
+
     return ngx_sprintf(buf, "<%ui>%V %V %V: ", pri,
&ngx_cached_syslog_time,
                        &ngx_cycle->hostname, &peer->tag);
 }
diff -r f1424eef1966 -r 7e4f78819218 src/core/ngx_syslog.h
--- a/src/core/ngx_syslog.h     Tue Oct 27 16:47:30 2015 +0300
+++ b/src/core/ngx_syslog.h     Tue Oct 27 20:19:13 2015 +0100
@@ -12,6 +12,7 @@
     ngx_pool_t       *pool;
     ngx_uint_t        facility;
     ngx_uint_t        severity;
+    ngx_uint_t        hostname;
     ngx_str_t         tag;

     ngx_addr_t        server;

On Tue, Oct 27, 2015 at 3:14 PM, Vladimir Homutov <vl at nginx.com> wrote:

> On Fri, Oct 23, 2015 at 08:51:56PM +0200, Nils Hermansson wrote:
> > # HG changeset patch
> > # User Nils Hermansson <3tnica at gmail.com>
> > # Date 1445625283 -7200
> > #      Fri Oct 23 20:34:43 2015 +0200
> > # Node ID 868fc6b3bf69be611118c597578e749c65698b8c
> > # Parent  ee16fb0db905cfb858a929374cf623cdf1a0f9d3
> > Most standard syslog facilicties do not expect hostname when logging to
> > Unix Sockets.
> > This patch removes hostname from syslog message when logging to Unix
> Socket.
> > Tested on rsyslog and syslog-ng
> >
> > diff -r ee16fb0db905 -r 868fc6b3bf69 src/core/ngx_syslog.c
> > --- a/src/core/ngx_syslog.c     Tue Oct 20 21:28:38 2015 +0300
> > +++ b/src/core/ngx_syslog.c     Fri Oct 23 20:34:43 2015 +0200
> > @@ -219,9 +219,17 @@
> >      ngx_uint_t  pri;
> >
> >      pri = peer->facility * 8 + peer->severity;
> > -
> > -    return ngx_sprintf(buf, "<%ui>%V %V %V: ", pri,
> > &ngx_cached_syslog_time,
> > +#if (NGX_HAVE_UNIX_DOMAIN)
> > +    if  (peer->server.sockaddr->sa_family == AF_UNIX) {
> > +        return ngx_sprintf(buf, "<%ui>%V %V: ", pri,
> > &ngx_cached_syslog_time,
> > +                       &peer->tag);
> > +    } else {
> > +#endif
> > +        return ngx_sprintf(buf, "<%ui>%V %V %V: ", pri,
> > &ngx_cached_syslog_time,
> >                         &ngx_cycle->hostname, &peer->tag);
> > +#if (NGX_HAVE_UNIX_DOMAIN)
> > +    }
> > +#endif
> >  }
>
> Hi Nils,
>
> we agree that there is some inconvenience with local syslog and are
> considering adding configuration option to select desired behaviour
> at this place.
>
> Note that there is a simple solution - to setup your syslog daemon
> to expect hostname. See https://trac.nginx.org/nginx/ticket/677
> and https://trac.nginx.org/nginx/ticket/783.
>
> Your suggested patch would breaks existing setups and make message
> content depend on transport, what is undesirable.
>
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20151027/fd80fa5f/attachment.html>


More information about the nginx-devel mailing list