Mercurial > hg > nginx
diff src/event/ngx_event_accept.c @ 419:47709bff4468
nginx-0.0.10-2004-09-09-19:40:48 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 09 Sep 2004 15:40:48 +0000 |
parents | 6f3b20c1ac50 |
children | bd39260a1383 |
line wrap: on
line diff
--- a/src/event/ngx_event_accept.c Wed Sep 08 05:18:51 2004 +0000 +++ b/src/event/ngx_event_accept.c Thu Sep 09 15:40:48 2004 +0000 @@ -11,6 +11,7 @@ } ngx_accept_log_ctx_t; +static void ngx_close_accepted_socket(ngx_socket_t s, ngx_log_t *log); static size_t ngx_accept_log_error(void *data, char *buf, size_t len); @@ -138,11 +139,7 @@ "closing the connection", ls->listening->addr_text.data, s, ecf->connections); - if (ngx_close_socket(s) == -1) { - ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno, - ngx_close_socket_n "failed"); - } - + ngx_close_accepted_socket(s, log); ngx_destroy_pool(pool); return; } @@ -155,11 +152,7 @@ ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno, ngx_blocking_n " failed"); - if (ngx_close_socket(s) == -1) { - ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno, - ngx_close_socket_n " failed"); - } - + ngx_close_accepted_socket(s, log); ngx_destroy_pool(pool); return; } @@ -171,11 +164,7 @@ ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno, ngx_nonblocking_n " failed"); - if (ngx_close_socket(s) == -1) { - ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno, - ngx_close_socket_n " failed"); - } - + ngx_close_accepted_socket(s, log); ngx_destroy_pool(pool); return; } @@ -286,6 +275,25 @@ ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, "accept: fd:%d c:%d", s, c->number); + if (c->listening->addr_ntop) { + c->addr_text.data = ngx_palloc(c->pool, + c->listening->addr_text_max_len); + if (c->addr_text.data == NULL) { + ngx_close_accepted_socket(s, log); + ngx_destroy_pool(pool); + return; + } + + c->addr_text.len = ngx_sock_ntop(c->listening->family, c->sockaddr, + c->addr_text.data, + c->listening->addr_text_max_len); + if (c->addr_text.len == 0) { + ngx_close_accepted_socket(s, log); + ngx_destroy_pool(pool); + return; + } + } + #if (NGX_DEBUG) { @@ -307,11 +315,7 @@ if (ngx_add_conn && (ngx_event_flags & NGX_USE_EPOLL_EVENT) == 0) { if (ngx_add_conn(c) == NGX_ERROR) { - if (ngx_close_socket(s) == -1) { - ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_socket_errno, - ngx_close_socket_n " failed"); - } - + ngx_close_accepted_socket(s, log); ngx_destroy_pool(pool); return; } @@ -440,6 +444,15 @@ } +static void ngx_close_accepted_socket(ngx_socket_t s, ngx_log_t *log) +{ + if (ngx_close_socket(s) == -1) { + ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno, + ngx_close_socket_n " failed"); + } +} + + static size_t ngx_accept_log_error(void *data, char *buf, size_t len) { ngx_accept_log_ctx_t *ctx = data;