mirror of
https://github.com/nginx/nginx.git
synced 2025-08-06 06:46:16 +08:00
Syslog: install cleanup handler only once.
If a socket was re-opened due to an error (02c2352d5b01 and fa0e093b64d7), additional cleanup handler was installed each time.
This commit is contained in:
parent
4ac8036e78
commit
5568a6598d
@ -39,7 +39,8 @@ static ngx_event_t ngx_syslog_dummy_event;
|
|||||||
char *
|
char *
|
||||||
ngx_syslog_process_conf(ngx_conf_t *cf, ngx_syslog_peer_t *peer)
|
ngx_syslog_process_conf(ngx_conf_t *cf, ngx_syslog_peer_t *peer)
|
||||||
{
|
{
|
||||||
peer->pool = cf->pool;
|
ngx_pool_cleanup_t *cln;
|
||||||
|
|
||||||
peer->facility = NGX_CONF_UNSET_UINT;
|
peer->facility = NGX_CONF_UNSET_UINT;
|
||||||
peer->severity = NGX_CONF_UNSET_UINT;
|
peer->severity = NGX_CONF_UNSET_UINT;
|
||||||
|
|
||||||
@ -67,6 +68,19 @@ ngx_syslog_process_conf(ngx_conf_t *cf, ngx_syslog_peer_t *peer)
|
|||||||
|
|
||||||
peer->conn.fd = (ngx_socket_t) -1;
|
peer->conn.fd = (ngx_socket_t) -1;
|
||||||
|
|
||||||
|
peer->conn.read = &ngx_syslog_dummy_event;
|
||||||
|
peer->conn.write = &ngx_syslog_dummy_event;
|
||||||
|
|
||||||
|
ngx_syslog_dummy_event.log = &ngx_syslog_dummy_log;
|
||||||
|
|
||||||
|
cln = ngx_pool_cleanup_add(cf->pool, 0);
|
||||||
|
if (cln == NULL) {
|
||||||
|
return NGX_CONF_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
cln->data = peer;
|
||||||
|
cln->handler = ngx_syslog_cleanup;
|
||||||
|
|
||||||
return NGX_CONF_OK;
|
return NGX_CONF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -306,13 +320,7 @@ ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len)
|
|||||||
static ngx_int_t
|
static ngx_int_t
|
||||||
ngx_syslog_init_peer(ngx_syslog_peer_t *peer)
|
ngx_syslog_init_peer(ngx_syslog_peer_t *peer)
|
||||||
{
|
{
|
||||||
ngx_socket_t fd;
|
ngx_socket_t fd;
|
||||||
ngx_pool_cleanup_t *cln;
|
|
||||||
|
|
||||||
peer->conn.read = &ngx_syslog_dummy_event;
|
|
||||||
peer->conn.write = &ngx_syslog_dummy_event;
|
|
||||||
|
|
||||||
ngx_syslog_dummy_event.log = &ngx_syslog_dummy_log;
|
|
||||||
|
|
||||||
fd = ngx_socket(peer->server.sockaddr->sa_family, SOCK_DGRAM, 0);
|
fd = ngx_socket(peer->server.sockaddr->sa_family, SOCK_DGRAM, 0);
|
||||||
if (fd == (ngx_socket_t) -1) {
|
if (fd == (ngx_socket_t) -1) {
|
||||||
@ -333,14 +341,6 @@ ngx_syslog_init_peer(ngx_syslog_peer_t *peer)
|
|||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
cln = ngx_pool_cleanup_add(peer->pool, 0);
|
|
||||||
if (cln == NULL) {
|
|
||||||
goto failed;
|
|
||||||
}
|
|
||||||
|
|
||||||
cln->data = peer;
|
|
||||||
cln->handler = ngx_syslog_cleanup;
|
|
||||||
|
|
||||||
peer->conn.fd = fd;
|
peer->conn.fd = fd;
|
||||||
|
|
||||||
/* UDP sockets are always ready to write */
|
/* UDP sockets are always ready to write */
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
ngx_pool_t *pool;
|
|
||||||
ngx_uint_t facility;
|
ngx_uint_t facility;
|
||||||
ngx_uint_t severity;
|
ngx_uint_t severity;
|
||||||
ngx_str_t tag;
|
ngx_str_t tag;
|
||||||
|
Loading…
Reference in New Issue
Block a user