diff options
author | Igor Sysoev <igor@sysoev.ru> | 2006-11-27 11:18:50 +0000 |
---|---|---|
committer | Jonathan Kolb <jon@b0g.us> | 2006-11-27 11:18:50 +0000 |
commit | 03789a0a1c208ac62bee429497b9f6a46c0aa5ff (patch) | |
tree | 32f1bb5197e419a4dc9c8d7fa2e05eaf86c1998f /src/imap/ngx_imap_auth_http_module.c | |
parent | e0cae6b0a5df2466cdb9749dc1a37664fff21ff5 (diff) | |
download | nginx-0.4.tar.gz |
*) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
*) Bugfix: ngx_http_perl_module did nto work with perl built with the
threads support; bug appeared in 0.3.38.
*) Bugfix: !!!!!!!!!! segfault perl.
*) Bugfix: !!!!!!!!!! recursive perl.
*) Bugfix: nginx ignored a host name in an request line.
*) Bugfix: !!!!!!!!!! endless loop when too many FastCGI sent too many
to stderr
*) Bugfix: !!!!!!!! negative upstream response time
*) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3
proxy authentication server when POP3 was used.
*) Bugfix: a segmentation fault might occur if connect to IMAP/POP3
proxy authentication server failed.
Diffstat (limited to 'src/imap/ngx_imap_auth_http_module.c')
-rw-r--r-- | src/imap/ngx_imap_auth_http_module.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/imap/ngx_imap_auth_http_module.c b/src/imap/ngx_imap_auth_http_module.c index 85728f46a..d39c29502 100644 --- a/src/imap/ngx_imap_auth_http_module.c +++ b/src/imap/ngx_imap_auth_http_module.c @@ -182,7 +182,10 @@ ngx_imap_auth_http_init(ngx_imap_session_t *s) rc = ngx_event_connect_peer(&ctx->peer); if (rc == NGX_ERROR || rc == NGX_BUSY || rc == NGX_DECLINED) { - ngx_close_connection(ctx->peer.connection); + if (ctx->peer.connection) { + ngx_close_connection(ctx->peer.connection); + } + ngx_destroy_pool(ctx->pool); ngx_imap_session_internal_server_error(s); return; @@ -489,10 +492,10 @@ ngx_imap_auth_http_process_headers(ngx_imap_session_t *s, ctx->errmsg.data = ctx->header_start; if (s->protocol == NGX_IMAP_POP3_PROTOCOL) { - size = sizeof("-ERR") - 1 + len + sizeof(CRLF) - 1; + size = sizeof("-ERR ") - 1 + len + sizeof(CRLF) - 1; } else { - size = s->tag.len + sizeof("NO") - 1 + len + size = s->tag.len + sizeof("NO ") - 1 + len + sizeof(CRLF) - 1; } @@ -1039,7 +1042,9 @@ ngx_imap_auth_http_create_request(ngx_imap_session_t *s, ngx_pool_t *pool, len = sizeof("GET ") - 1 + ahcf->uri.len + sizeof(" HTTP/1.0" CRLF) - 1 + sizeof("Host: ") - 1 + ahcf->host_header.len + sizeof(CRLF) - 1 - + sizeof("Auth-Method: plain" CRLF) - 1 + + sizeof("Auth-Method: ") - 1 + + ngx_imap_auth_http_method[s->auth_method].len + + sizeof(CRLF) - 1 + sizeof("Auth-User: ") - 1 + login.len + sizeof(CRLF) - 1 + sizeof("Auth-Pass: ") - 1 + passwd.len + sizeof(CRLF) - 1 + sizeof("Auth-Salt: ") - 1 + s->salt.len |