comparison src/mail/ngx_mail_proxy_module.c @ 366:babd3d9efb62 NGINX_0_6_27

nginx 0.6.27 *) Change: now by default the rtsig method is not built on Linux 2.6.18+. *) Change: now a request method is not changed while redirection to a named location via an "error_page" directive. *) Feature: the "resolver" and "resolver_timeout" directives in SMTP proxy. *) Feature: the "post_action" directive supports named locations. *) Bugfix: a segmentation fault occurred in worker process, if a request was redirected from proxy, FastCGI, or memcached location to static named locations. *) Bugfix: browsers did not repeat SSL handshake if there is no valid client certificate in first handshake. Thanks to Alexander V. Inyukhin. *) Bugfix: if response code 495-497 was redirected via an "error_page" directive without code change, then nginx tried to allocate too many memory. *) Bugfix: memory leak in long-lived non buffered connections. *) Bugfix: memory leak in resolver. *) Bugfix: a segmentation fault occurred in worker process, if a request was redirected from proxy, FastCGI, or memcached location to static named locations. *) Bugfix: in the $proxy_host and $proxy_port variables caching. Thanks to Sergey Bochenkov. *) Bugfix: a "proxy_pass" directive with variables used incorrectly the same port as in another "proxy_pass" directive with the same host name and without variables. Thanks to Sergey Bochenkov. *) Bugfix: an alert "sendmsg() failed (9: Bad file descriptor)" on some 64-bit platforms while reconfiguration. *) Bugfix: a segmentation fault occurred in worker process, if empty stub block was used second time in SSI. *) Bugfix: in copying URI part contained escaped symbols into arguments.
author Igor Sysoev <http://sysoev.ru>
date Wed, 12 Mar 2008 00:00:00 +0300
parents 1c519aff5c0c
children 6639b93e81b2
comparison
equal deleted inserted replaced
365:9b0140fa1132 366:babd3d9efb62
526 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, rev->log, 0, 526 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, rev->log, 0,
527 "mail proxy send xclient"); 527 "mail proxy send xclient");
528 528
529 s->connection->log->action = "sending XCLIENT to upstream"; 529 s->connection->log->action = "sending XCLIENT to upstream";
530 530
531 line.len = sizeof("XCLIENT PROTO=SMTP HELO= ADDR= LOGIN= " 531 line.len = sizeof("XCLIENT PROTO=SMTP HELO= ADDR= LOGIN= NAME="
532 "NAME=[UNAVAILABLE]" CRLF) - 1 532 CRLF) - 1
533 + s->esmtp + s->smtp_helo.len 533 + s->esmtp + s->smtp_helo.len
534 + s->connection->addr_text.len + s->login.len; 534 + s->connection->addr_text.len + s->login.len + s->host.len;
535 535
536 line.data = ngx_palloc(c->pool, line.len); 536 line.data = ngx_palloc(c->pool, line.len);
537 if (line.data == NULL) { 537 if (line.data == NULL) {
538 ngx_mail_proxy_internal_server_error(s); 538 ngx_mail_proxy_internal_server_error(s);
539 return; 539 return;
540 } 540 }
541 541
542 if (s->smtp_helo.len) { 542 if (s->smtp_helo.len) {
543 line.len = ngx_sprintf(line.data, 543 line.len = ngx_sprintf(line.data,
544 "XCLIENT PROTO=%sSMTP HELO=%V ADDR=%V LOGIN=%V " 544 "XCLIENT PROTO=%sSMTP HELO=%V ADDR=%V LOGIN=%V "
545 "NAME=[UNAVAILABLE]" CRLF, 545 "NAME=%V" CRLF,
546 (s->esmtp ? "E" : ""), &s->smtp_helo, 546 (s->esmtp ? "E" : ""), &s->smtp_helo,
547 &s->connection->addr_text, &s->login) 547 &s->connection->addr_text, &s->login, &s->host)
548 - line.data; 548 - line.data;
549 } else { 549 } else {
550 line.len = ngx_sprintf(line.data, 550 line.len = ngx_sprintf(line.data,
551 "XCLIENT PROTO=SMTP ADDR=%V LOGIN=%V " 551 "XCLIENT PROTO=SMTP ADDR=%V LOGIN=%V NAME=%V" CRLF,
552 "NAME=[UNAVAILABLE]" CRLF, 552 &s->connection->addr_text, &s->login, &s->host)
553 &s->connection->addr_text, &s->login)
554 - line.data; 553 - line.data;
555 } 554 }
556 555
557 s->mail_state = ngx_smtp_xclient; 556 s->mail_state = ngx_smtp_xclient;
558 break; 557 break;