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 }