Syslog: added "nohostname" option.

The option disables sending hostname in the syslog message header.  This is
useful with syslog daemons that do not expect it (tickets #677 and #783).
This commit is contained in:
Vladimir Homutov 2015-10-26 19:06:42 +03:00
parent 090c471032
commit e7d298f3fc
2 changed files with 10 additions and 1 deletions

View File

@ -194,6 +194,9 @@ ngx_syslog_parse_args(ngx_conf_t *cf, ngx_syslog_peer_t *peer)
peer->tag.data = p + 4;
peer->tag.len = len - 4;
} else if (len == 10 && ngx_strncmp(p, "nohostname", 10) == 0) {
peer->nohostname = 1;
} else {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"unknown syslog parameter \"%s\"", p);
@ -220,6 +223,11 @@ ngx_syslog_add_header(ngx_syslog_peer_t *peer, u_char *buf)
pri = peer->facility * 8 + peer->severity;
if (peer->nohostname) {
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);
}

View File

@ -16,7 +16,8 @@ typedef struct {
ngx_addr_t server;
ngx_connection_t conn;
ngx_uint_t busy; /* unsigned busy:1; */
unsigned busy:1;
unsigned nohostname:1;
} ngx_syslog_peer_t;