Mercurial > hg > nginx
comparison src/event/ngx_event_close.c @ 67:5a7d1aaa1618
nginx-0.0.1-2003-03-11-23:38:13 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 11 Mar 2003 20:38:13 +0000 |
parents | e8cdc2989cee |
children | ef8c87afcfc5 |
comparison
equal
deleted
inserted
replaced
66:4876cd4a36bb | 67:5a7d1aaa1618 |
---|---|
11 int ngx_event_close_connection(ngx_event_t *ev) | 11 int ngx_event_close_connection(ngx_event_t *ev) |
12 { | 12 { |
13 int rc; | 13 int rc; |
14 ngx_connection_t *c = (ngx_connection_t *) ev->data; | 14 ngx_connection_t *c = (ngx_connection_t *) ev->data; |
15 | 15 |
16 ngx_log_debug(c->log, "CLOSE: %d" _ c->fd); | 16 ngx_log_debug(c->log, "close connection: %d" _ c->fd); |
17 | 17 |
18 ngx_assert((c->fd != -1), return NGX_ERROR, c->log, | 18 ngx_assert((c->fd != -1), return NGX_ERROR, c->log, |
19 "ngx_event_close: already closed"); | 19 "ngx_event_close: already closed"); |
20 | 20 |
21 ngx_destroy_pool(c->pool); | 21 if (c->read->timer_set) { |
22 ngx_del_timer(c->read); | |
23 c->read->timer_set = 0; | |
24 } | |
22 | 25 |
23 ngx_del_timer(c->read); | 26 if (c->write->timer_set) { |
24 ngx_del_timer(c->write); | 27 ngx_del_timer(c->write); |
28 c->write->timer_set = 0; | |
29 } | |
25 | 30 |
26 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT); | 31 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT); |
27 ngx_del_event(c->write, NGX_WRITE_EVENT, NGX_CLOSE_EVENT); | 32 ngx_del_event(c->write, NGX_WRITE_EVENT, NGX_CLOSE_EVENT); |
28 | 33 |
29 if ((rc = ngx_close_socket(c->fd)) == -1) | 34 if ((rc = ngx_close_socket(c->fd)) == -1) |
30 ngx_log_error(NGX_LOG_ALERT, c->log, ngx_socket_errno, | 35 ngx_log_error(NGX_LOG_ALERT, c->log, ngx_socket_errno, |
31 "ngx_event_close: close failed"); | 36 "ngx_event_close: close failed"); |
32 | 37 |
33 c->fd = -1; | 38 c->fd = -1; |
34 | 39 |
40 ngx_destroy_pool(c->pool); | |
41 | |
35 return rc; | 42 return rc; |
36 } | 43 } |