Mercurial > hg > nginx
diff src/core/ngx_connection.c @ 253:b6793bc5034b
nginx-0.0.2-2004-02-09-10:46:43 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 09 Feb 2004 07:46:43 +0000 |
parents | 5d4f49dc8de5 |
children | 8e39cab6abd5 |
line wrap: on
line diff
--- a/src/core/ngx_connection.c Thu Feb 05 16:58:36 2004 +0000 +++ b/src/core/ngx_connection.c Mon Feb 09 07:46:43 2004 +0000 @@ -48,11 +48,6 @@ return NGX_ERROR; } -/* STUB: autoconf & set sin_len in ls[i].sockaddr in ngx_http.c */ -#if __FreeBSD__ - addr_in->sin_len = 0; -#endif - ls[i].family = addr_in->sin_family; ls[i].addr_text.len = ngx_sock_ntop(ls[i].family, ls[i].sockaddr, ls[i].addr_text.data, @@ -68,11 +63,11 @@ ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle) { - int tries, failed, reuseaddr, i; - ngx_err_t err; - ngx_log_t *log; - ngx_socket_t s; - ngx_listening_t *ls; + ngx_int_t tries, failed, reuseaddr, i; + ngx_err_t err; + ngx_log_t *log; + ngx_socket_t s; + ngx_listening_t *ls; reuseaddr = 1; #if (NGX_SUPPRESS_WARN) @@ -241,3 +236,39 @@ cycle->connections[fd].fd = -1; } } + + +ngx_int_t ngx_connection_error(ngx_connection_t *c, ngx_err_t err, char *text) +{ + ngx_int_t level; + + if (err == NGX_ECONNRESET + && c->read->log_error == NGX_ERROR_IGNORE_ECONNRESET) + { + return 0; + } + + if (err == NGX_ECONNRESET || err == NGX_EPIPE || err == NGX_ENOTCONN) { + + switch (c->read->log_error) { + + case NGX_ERROR_INFO: + level = NGX_LOG_INFO; + break; + + case NGX_ERROR_ERR: + level = NGX_LOG_ERR; + break; + + default: + level = NGX_LOG_CRIT; + } + + } else { + level = NGX_LOG_CRIT; + } + + ngx_log_error(level, c->log, err, text); + + return NGX_ERROR; +}