Mercurial > hg > nginx-quic
comparison src/event/ngx_event_acceptex.c @ 2535:ec5825afc7eb
use variable for often used field
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 24 Feb 2009 08:32:02 +0000 |
parents | 2e91aecb9e57 |
children | 00d436dbf826 |
comparison
equal
deleted
inserted
replaced
2534:2749e4bf6af0 | 2535:ec5825afc7eb |
---|---|
13 | 13 |
14 | 14 |
15 void | 15 void |
16 ngx_event_acceptex(ngx_event_t *rev) | 16 ngx_event_acceptex(ngx_event_t *rev) |
17 { | 17 { |
18 ngx_listening_t *ls; | |
18 ngx_connection_t *c; | 19 ngx_connection_t *c; |
19 | 20 |
20 c = rev->data; | 21 c = rev->data; |
22 ls = c->listening; | |
21 | 23 |
22 c->log->handler = ngx_accept_log_error; | 24 c->log->handler = ngx_accept_log_error; |
23 | 25 |
24 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "AcceptEx: %d", c->fd); | 26 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "AcceptEx: %d", c->fd); |
25 | 27 |
26 if (rev->ovlp.error) { | 28 if (rev->ovlp.error) { |
27 ngx_log_error(NGX_LOG_CRIT, c->log, rev->ovlp.error, | 29 ngx_log_error(NGX_LOG_CRIT, c->log, rev->ovlp.error, |
28 "AcceptEx() %V failed", &c->listening->addr_text); | 30 "AcceptEx() %V failed", &ls->addr_text); |
29 return; | 31 return; |
30 } | 32 } |
31 | 33 |
32 /* SO_UPDATE_ACCEPT_CONTEXT is required for shutdown() to work */ | 34 /* SO_UPDATE_ACCEPT_CONTEXT is required for shutdown() to work */ |
33 | 35 |
34 if (setsockopt(c->fd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, | 36 if (setsockopt(c->fd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, |
35 (char *) &c->listening->fd, sizeof(ngx_socket_t)) | 37 (char *) &ls->fd, sizeof(ngx_socket_t)) |
36 == -1) | 38 == -1) |
37 { | 39 { |
38 ngx_log_error(NGX_LOG_CRIT, c->log, ngx_socket_errno, | 40 ngx_log_error(NGX_LOG_CRIT, c->log, ngx_socket_errno, |
39 "setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed for %V", | 41 "setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed for %V", |
40 &c->addr_text); | 42 &c->addr_text); |
41 } else { | 43 } else { |
42 c->accept_context_updated = 1; | 44 c->accept_context_updated = 1; |
43 } | 45 } |
44 | 46 |
45 ngx_getacceptexsockaddrs(c->buffer->pos, | 47 ngx_getacceptexsockaddrs(c->buffer->pos, |
46 c->listening->post_accept_buffer_size, | 48 ls->post_accept_buffer_size, |
47 c->listening->socklen + 16, | 49 ls->socklen + 16, |
48 c->listening->socklen + 16, | 50 ls->socklen + 16, |
49 &c->local_sockaddr, &c->local_socklen, | 51 &c->local_sockaddr, &c->local_socklen, |
50 &c->sockaddr, &c->socklen); | 52 &c->sockaddr, &c->socklen); |
51 | 53 |
52 if (c->listening->post_accept_buffer_size) { | 54 if (ls->post_accept_buffer_size) { |
53 c->buffer->last += rev->available; | 55 c->buffer->last += rev->available; |
54 c->buffer->end = c->buffer->start | 56 c->buffer->end = c->buffer->start + ls->post_accept_buffer_size; |
55 + c->listening->post_accept_buffer_size; | 57 |
56 } else { | 58 } else { |
57 c->buffer = NULL; | 59 c->buffer = NULL; |
58 } | 60 } |
59 | 61 |
60 if (c->listening->addr_ntop) { | 62 if (ls->addr_ntop) { |
61 c->addr_text.data = ngx_pnalloc(c->pool, | 63 c->addr_text.data = ngx_pnalloc(c->pool, ls->addr_text_max_len); |
62 c->listening->addr_text_max_len); | |
63 if (c->addr_text.data == NULL) { | 64 if (c->addr_text.data == NULL) { |
64 /* TODO: close socket */ | 65 /* TODO: close socket */ |
65 return; | 66 return; |
66 } | 67 } |
67 | 68 |
68 c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->addr_text.data, | 69 c->addr_text.len = ngx_sock_ntop(c->sockaddr, c->addr_text.data, |
69 c->listening->addr_text_max_len, 0); | 70 ls->addr_text_max_len, 0); |
70 if (c->addr_text.len == 0) { | 71 if (c->addr_text.len == 0) { |
71 /* TODO: close socket */ | 72 /* TODO: close socket */ |
72 return; | 73 return; |
73 } | 74 } |
74 } | 75 } |
75 | 76 |
76 ngx_event_post_acceptex(c->listening, 1); | 77 ngx_event_post_acceptex(ls, 1); |
77 | 78 |
78 c->number = ngx_atomic_fetch_add(ngx_connection_counter, 1); | 79 c->number = ngx_atomic_fetch_add(ngx_connection_counter, 1); |
79 | 80 |
80 c->listening->handler(c); | 81 ls->handler(c); |
81 | 82 |
82 return; | 83 return; |
83 | 84 |
84 } | 85 } |
85 | 86 |