diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-11-15 13:30:52 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-11-15 13:30:52 +0000 |
commit | 0e5dc5cff692f532f0ccb2655ab196995f4233e0 (patch) | |
tree | f56f40e788077b9820ebb45f3e0739fabb7be421 /src/imap/ngx_imap_handler.c | |
parent | 2a7f83eceda87e520f36bbfb16b82b8c2d6606d7 (diff) | |
download | nginx-0e5dc5cff692f532f0ccb2655ab196995f4233e0.tar.gz nginx-0e5dc5cff692f532f0ccb2655ab196995f4233e0.zip |
nginx-0.3.10-RELEASE importrelease-0.3.10
*) Change: the "valid_referers" directive and the "$invalid_referer"
variable were moved to the new ngx_http_referer_module from the
ngx_http_rewrite_module.
*) Change: the "$apache_bytes_sent" variable name was changed to
"$body_bytes_sent".
*) Feature: the "$sent_http_..." variables.
*) Feature: the "if" directive supports the "=" and "!=" operations.
*) Feature: the "proxy_pass" directive supports the HTTPS protocol.
*) Feature: the "proxy_set_body" directive.
*) Feature: the "post_action" directive.
*) Feature: the ngx_http_empty_gif_module.
*) Feature: the "worker_cpu_affinity" directive for Linux.
*) Bugfix: the "rewrite" directive did not unescape URI part in
redirect, now it is unescaped except the %00-%25 and %7F-%FF
characters.
*) Bugfix: nginx could not be built by the icc 9.0 compiler.
*) Bugfix: if the SSI was enabled for zero size static file, then the
chunked response was encoded incorrectly.
Diffstat (limited to 'src/imap/ngx_imap_handler.c')
-rw-r--r-- | src/imap/ngx_imap_handler.c | 35 |
1 files changed, 8 insertions, 27 deletions
diff --git a/src/imap/ngx_imap_handler.c b/src/imap/ngx_imap_handler.c index ac5db73b4..ddff96a29 100644 --- a/src/imap/ngx_imap_handler.c +++ b/src/imap/ngx_imap_handler.c @@ -17,7 +17,6 @@ static u_char *ngx_imap_log_error(ngx_log_t *log, u_char *buf, size_t len); #if (NGX_IMAP_SSL) static void ngx_imap_ssl_handshake_handler(ngx_connection_t *c); -static void ngx_imap_ssl_close_handler(ngx_event_t *ev); #endif @@ -58,7 +57,7 @@ ngx_imap_init_connection(ngx_connection_t *c) if (lctx == NULL) { ngx_imap_close_connection(c); return; - } + } lctx->client = &c->addr_text; lctx->session = NULL; @@ -106,7 +105,7 @@ ngx_imap_init_connection(ngx_connection_t *c) static void ngx_imap_ssl_handshake_handler(ngx_connection_t *c) -{ +{ if (c->ssl->handshaked) { ngx_imap_init_session(c); return; @@ -181,6 +180,7 @@ ngx_imap_send(ngx_event_t *wev) if (wev->timedout) { ngx_log_error(NGX_LOG_INFO, c->log, NGX_ETIMEDOUT, "client timed out"); + c->timedout = 1; ngx_imap_close_connection(c); return; } @@ -246,6 +246,7 @@ ngx_imap_init_protocol(ngx_event_t *rev) if (rev->timedout) { ngx_log_error(NGX_LOG_INFO, c->log, NGX_ETIMEDOUT, "client timed out"); + c->timedout = 1; ngx_imap_close_connection(c); return; } @@ -298,6 +299,7 @@ ngx_imap_auth_state(ngx_event_t *rev) if (rev->timedout) { ngx_log_error(NGX_LOG_INFO, c->log, NGX_ETIMEDOUT, "client timed out"); + c->timedout = 1; ngx_imap_close_connection(c); return; } @@ -498,6 +500,7 @@ ngx_pop3_auth_state(ngx_event_t *rev) if (rev->timedout) { ngx_log_error(NGX_LOG_INFO, c->log, NGX_ETIMEDOUT, "client timed out"); + c->timedout = 1; ngx_imap_close_connection(c); return; } @@ -725,8 +728,7 @@ ngx_imap_close_connection(ngx_connection_t *c) if (c->ssl) { if (ngx_ssl_shutdown(c) == NGX_AGAIN) { - c->read->handler = ngx_imap_ssl_close_handler; - c->write->handler = ngx_imap_ssl_close_handler; + c->ssl->handler = ngx_imap_close_connection; return; } } @@ -743,27 +745,6 @@ ngx_imap_close_connection(ngx_connection_t *c) } -#if (NGX_IMAP_SSL) - -static void -ngx_imap_ssl_close_handler(ngx_event_t *ev) -{ - ngx_connection_t *c; - - c = ev->data; - - ngx_log_debug0(NGX_LOG_DEBUG_IMAP, ev->log, 0, "http ssl close handler"); - - if (ngx_ssl_shutdown(c) == NGX_AGAIN) { - return; - } - - ngx_imap_close_connection(c); -} - -#endif - - static u_char * ngx_imap_log_error(ngx_log_t *log, u_char *buf, size_t len) { @@ -776,7 +757,7 @@ ngx_imap_log_error(ngx_log_t *log, u_char *buf, size_t len) len -= p - buf; buf = p; } - + ctx = log->data; p = ngx_snprintf(buf, len, ", client: %V", ctx->client); |