Mercurial > hg > nginx
diff src/event/ngx_event_accept.c @ 257:70e1c7d2b83d
nginx-0.0.2-2004-02-11-20:08:49 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 11 Feb 2004 17:08:49 +0000 |
parents | b6793bc5034b |
children | d30f2c39caae |
line wrap: on
line diff
--- a/src/event/ngx_event_accept.c +++ b/src/event/ngx_event_accept.c @@ -5,6 +5,12 @@ #include <nginx.h> +typedef struct { + int flag; + char *name; +} ngx_accept_log_ctx_t; + + static size_t ngx_accept_log_error(void *data, char *buf, size_t len); @@ -20,6 +26,7 @@ void ngx_event_accept(ngx_event_t *ev) ngx_event_t *rev, *wev; ngx_connection_t *c, *ls; ngx_event_conf_t *ecf; + ngx_accept_log_ctx_t *ctx; ecf = ngx_event_get_conf(ngx_cycle->conf_ctx, ngx_event_core_module); @@ -32,9 +39,9 @@ void ngx_event_accept(ngx_event_t *ev) ls = ev->data; - ngx_log_debug(ev->log, "accept on %s ready: %d" _ - ls->listening->addr_text.data _ - ev->available); + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, + "accept on %s, ready: %d", + ls->listening->addr_text.data, ev->available); ev->ready = 0; accepted = 0; @@ -68,7 +75,16 @@ void ngx_event_accept(ngx_event_t *ev) ngx_memcpy(log, ls->log, sizeof(ngx_log_t)); pool->log = log; - log->data = ls->listening->addr_text.data; + if (!(ctx = ngx_palloc(pool, sizeof(ngx_accept_log_ctx_t)))) { + ngx_destroy_pool(pool); + return; + } + + /* -1 disable logging the connection number */ + ctx->flag = -1; + ctx->name = ls->listening->addr_text.data; + + log->data = ctx; log->handler = ngx_accept_log_error; len = ls->listening->socklen; @@ -233,8 +249,8 @@ void ngx_event_accept(ngx_event_t *ev) wev->log = log; /* - * In the multithreaded model the connection counter is updated by - * the main thread only that accept()s connections. + * TODO: MT: - atomic increment (x86: lock xadd) + * or protection by critical section or mutex * * TODO: MP: - allocated in a shared memory * - atomic increment (x86: lock xadd) @@ -279,7 +295,7 @@ void ngx_event_accept(ngx_event_t *ev) static size_t ngx_accept_log_error(void *data, char *buf, size_t len) { - char *sock = data; + ngx_accept_log_ctx_t *ctx = data; - return ngx_snprintf(buf, len, " while accept() on %s", sock); + return ngx_snprintf(buf, len, " while accept() on %s", ctx->name); }