Mercurial > hg > nginx-vendor-0-5
comparison src/imap/ngx_imap_auth_http_module.c @ 258:6ae1357b7b7c NGINX_0_4_14
nginx 0.4.14
*) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
*) Feature: now configure detects system PCRE library on FreeBSD,
Linux, and NetBSD.
*) Bugfix: ngx_http_perl_module did not work with perl built with the
threads support; bug appeared in 0.3.38.
*) Bugfix: ngx_http_perl_module did not work if perl was called
recursively.
*) Bugfix: nginx ignored a host name in an request line.
*) Bugfix: a worker process may got caught in an endless loop, if a
FastCGI server sent too many data to the stderr.
*) Bugfix: the $upstream_response_time variable may be negative if the
system time was changed backward.
*) 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.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 27 Nov 2006 00:00:00 +0300 |
parents | 644510700914 |
children | 0effe91f6083 |
comparison
equal
deleted
inserted
replaced
257:0e566ee1bcd5 | 258:6ae1357b7b7c |
---|---|
180 ctx->peer.log_error = NGX_ERROR_ERR; | 180 ctx->peer.log_error = NGX_ERROR_ERR; |
181 | 181 |
182 rc = ngx_event_connect_peer(&ctx->peer); | 182 rc = ngx_event_connect_peer(&ctx->peer); |
183 | 183 |
184 if (rc == NGX_ERROR || rc == NGX_BUSY || rc == NGX_DECLINED) { | 184 if (rc == NGX_ERROR || rc == NGX_BUSY || rc == NGX_DECLINED) { |
185 ngx_close_connection(ctx->peer.connection); | 185 if (ctx->peer.connection) { |
186 ngx_close_connection(ctx->peer.connection); | |
187 } | |
188 | |
186 ngx_destroy_pool(ctx->pool); | 189 ngx_destroy_pool(ctx->pool); |
187 ngx_imap_session_internal_server_error(s); | 190 ngx_imap_session_internal_server_error(s); |
188 return; | 191 return; |
189 } | 192 } |
190 | 193 |
487 | 490 |
488 ctx->errmsg.len = len; | 491 ctx->errmsg.len = len; |
489 ctx->errmsg.data = ctx->header_start; | 492 ctx->errmsg.data = ctx->header_start; |
490 | 493 |
491 if (s->protocol == NGX_IMAP_POP3_PROTOCOL) { | 494 if (s->protocol == NGX_IMAP_POP3_PROTOCOL) { |
492 size = sizeof("-ERR") - 1 + len + sizeof(CRLF) - 1; | 495 size = sizeof("-ERR ") - 1 + len + sizeof(CRLF) - 1; |
493 | 496 |
494 } else { | 497 } else { |
495 size = s->tag.len + sizeof("NO") - 1 + len | 498 size = s->tag.len + sizeof("NO ") - 1 + len |
496 + sizeof(CRLF) - 1; | 499 + sizeof(CRLF) - 1; |
497 } | 500 } |
498 | 501 |
499 p = ngx_pcalloc(s->connection->pool, size); | 502 p = ngx_pcalloc(s->connection->pool, size); |
500 if (p == NULL) { | 503 if (p == NULL) { |
1037 return NULL; | 1040 return NULL; |
1038 } | 1041 } |
1039 | 1042 |
1040 len = sizeof("GET ") - 1 + ahcf->uri.len + sizeof(" HTTP/1.0" CRLF) - 1 | 1043 len = sizeof("GET ") - 1 + ahcf->uri.len + sizeof(" HTTP/1.0" CRLF) - 1 |
1041 + sizeof("Host: ") - 1 + ahcf->host_header.len + sizeof(CRLF) - 1 | 1044 + sizeof("Host: ") - 1 + ahcf->host_header.len + sizeof(CRLF) - 1 |
1042 + sizeof("Auth-Method: plain" CRLF) - 1 | 1045 + sizeof("Auth-Method: ") - 1 |
1046 + ngx_imap_auth_http_method[s->auth_method].len | |
1047 + sizeof(CRLF) - 1 | |
1043 + sizeof("Auth-User: ") - 1 + login.len + sizeof(CRLF) - 1 | 1048 + sizeof("Auth-User: ") - 1 + login.len + sizeof(CRLF) - 1 |
1044 + sizeof("Auth-Pass: ") - 1 + passwd.len + sizeof(CRLF) - 1 | 1049 + sizeof("Auth-Pass: ") - 1 + passwd.len + sizeof(CRLF) - 1 |
1045 + sizeof("Auth-Salt: ") - 1 + s->salt.len | 1050 + sizeof("Auth-Salt: ") - 1 + s->salt.len |
1046 + sizeof("Auth-Protocol: imap" CRLF) - 1 | 1051 + sizeof("Auth-Protocol: imap" CRLF) - 1 |
1047 + sizeof("Auth-Login-Attempt: ") - 1 + NGX_INT_T_LEN | 1052 + sizeof("Auth-Login-Attempt: ") - 1 + NGX_INT_T_LEN |