Mercurial > hg > nginx
diff src/imap/ngx_imap_auth_http_module.c @ 543:511a89da35ad release-0.2.0
nginx-0.2.0-RELEASE import
*) The pid-file names used during online upgrade was changed and now is
not required a manual rename operation. The old master process adds
the ".oldbin" suffix to its pid-file and executes a new binary file.
The new master process creates usual pid-file without the ".newbin"
suffix. If the master process exits, then old master process renames
back its pid-file with the ".oldbin" suffix to the pid-file without
suffix.
*) Change: the "worker_connections" directive, new name of the
"connections" directive; now the directive specifies maximum number
of connections, but not maximum socket descriptor number.
*) Feature: SSL supports the session cache inside one worker process.
*) Feature: the "satisfy_any" directive.
*) Change: the ngx_http_access_module and ngx_http_auth_basic_module do
not run for subrequests.
*) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending"
directives.
*) Bugfix: if all backend using in load-balancing failed after one
error, then nginx did not try do connect to them during 60 seconds.
*) Bugfix: in IMAP/POP3 command argument parsing.
Thanks to Rob Mueller.
*) Bugfix: errors while using SSL in IMAP/POP3 proxy.
*) Bugfix: errors while using SSI and gzipping.
*) Bugfix: the "Expires" and "Cache-Control" header lines were omitted
from the 304 responses.
Thanks to Alexandr Kukushkin.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 23 Sep 2005 11:02:22 +0000 |
parents | b09ee85d0ac8 |
children | 818fbd4750b9 |
line wrap: on
line diff
--- a/src/imap/ngx_imap_auth_http_module.c Thu Sep 08 14:36:09 2005 +0000 +++ b/src/imap/ngx_imap_auth_http_module.c Fri Sep 23 11:02:22 2005 +0000 @@ -150,7 +150,8 @@ rc = ngx_event_connect_peer(&ctx->peer); - if (rc == NGX_ERROR || rc == NGX_CONNECT_ERROR) { + if (rc == NGX_ERROR || rc == NGX_BUSY || rc == NGX_DECLINED) { + ngx_close_connection(ctx->peer.connection); ngx_imap_session_internal_server_error(s); return; } @@ -448,6 +449,7 @@ p = ngx_pcalloc(s->connection->pool, size); if (p == NULL) { + ngx_close_connection(ctx->peer.connection); ngx_imap_session_internal_server_error(s); return; } @@ -641,8 +643,9 @@ static void ngx_imap_auth_sleep_handler(ngx_event_t *rev) { - ngx_connection_t *c; - ngx_imap_session_t *s; + ngx_connection_t *c; + ngx_imap_session_t *s; + ngx_imap_core_srv_conf_t *cscf; ngx_log_debug0(NGX_LOG_DEBUG_IMAP, rev->log, 0, "imap auth sleep handler"); @@ -662,6 +665,18 @@ s->connection->read->handler = ngx_imap_auth_state; } + c->log->action = "in auth state"; + + ngx_imap_send(s->connection->write); + + if (c->closed) { + return; + } + + cscf = ngx_imap_get_module_srv_conf(s, ngx_imap_core_module); + + ngx_add_timer(rev, cscf->timeout); + if (rev->ready) { s->connection->read->handler(rev); return; @@ -671,8 +686,6 @@ ngx_imap_close_connection(s->connection); } - ngx_imap_send(s->connection->write); - return; }