Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
252:84b1c672ec5a | 253:b6793bc5034b |
---|---|
46 ls[i].addr_text.data = ngx_palloc(cycle->pool, ls[i].addr_text_max_len); | 46 ls[i].addr_text.data = ngx_palloc(cycle->pool, ls[i].addr_text_max_len); |
47 if (ls[i].addr_text.data == NULL) { | 47 if (ls[i].addr_text.data == NULL) { |
48 return NGX_ERROR; | 48 return NGX_ERROR; |
49 } | 49 } |
50 | 50 |
51 /* STUB: autoconf & set sin_len in ls[i].sockaddr in ngx_http.c */ | |
52 #if __FreeBSD__ | |
53 addr_in->sin_len = 0; | |
54 #endif | |
55 | |
56 ls[i].family = addr_in->sin_family; | 51 ls[i].family = addr_in->sin_family; |
57 ls[i].addr_text.len = ngx_sock_ntop(ls[i].family, ls[i].sockaddr, | 52 ls[i].addr_text.len = ngx_sock_ntop(ls[i].family, ls[i].sockaddr, |
58 ls[i].addr_text.data, | 53 ls[i].addr_text.data, |
59 ls[i].addr_text_max_len); | 54 ls[i].addr_text_max_len); |
60 if (ls[i].addr_text.len == 0) { | 55 if (ls[i].addr_text.len == 0) { |
66 } | 61 } |
67 | 62 |
68 | 63 |
69 ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle) | 64 ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle) |
70 { | 65 { |
71 int tries, failed, reuseaddr, i; | 66 ngx_int_t tries, failed, reuseaddr, i; |
72 ngx_err_t err; | 67 ngx_err_t err; |
73 ngx_log_t *log; | 68 ngx_log_t *log; |
74 ngx_socket_t s; | 69 ngx_socket_t s; |
75 ngx_listening_t *ls; | 70 ngx_listening_t *ls; |
76 | 71 |
77 reuseaddr = 1; | 72 reuseaddr = 1; |
78 #if (NGX_SUPPRESS_WARN) | 73 #if (NGX_SUPPRESS_WARN) |
79 failed = 0; | 74 failed = 0; |
80 #endif | 75 #endif |
239 } | 234 } |
240 | 235 |
241 cycle->connections[fd].fd = -1; | 236 cycle->connections[fd].fd = -1; |
242 } | 237 } |
243 } | 238 } |
239 | |
240 | |
241 ngx_int_t ngx_connection_error(ngx_connection_t *c, ngx_err_t err, char *text) | |
242 { | |
243 ngx_int_t level; | |
244 | |
245 if (err == NGX_ECONNRESET | |
246 && c->read->log_error == NGX_ERROR_IGNORE_ECONNRESET) | |
247 { | |
248 return 0; | |
249 } | |
250 | |
251 if (err == NGX_ECONNRESET || err == NGX_EPIPE || err == NGX_ENOTCONN) { | |
252 | |
253 switch (c->read->log_error) { | |
254 | |
255 case NGX_ERROR_INFO: | |
256 level = NGX_LOG_INFO; | |
257 break; | |
258 | |
259 case NGX_ERROR_ERR: | |
260 level = NGX_LOG_ERR; | |
261 break; | |
262 | |
263 default: | |
264 level = NGX_LOG_CRIT; | |
265 } | |
266 | |
267 } else { | |
268 level = NGX_LOG_CRIT; | |
269 } | |
270 | |
271 ngx_log_error(level, c->log, err, text); | |
272 | |
273 return NGX_ERROR; | |
274 } |