Mercurial > hg > nginx-vendor-current
comparison src/mail/ngx_mail_proxy_module.c @ 570:8246d8a2c2be NGINX_0_8_37
nginx 0.8.37
*) Feature: the ngx_http_split_clients_module.
*) Feature: the "map" directive supports keys more than 255 characters.
*) Bugfix: nginx ignored the "private" and "no-store" values in the
"Cache-Control" backend response header line.
*) Bugfix: a "stub" parameter of an "include" SSI directive was not
used, if empty response has 200 status code.
*) Bugfix: if a proxied or FastCGI request was internally redirected to
another proxied or FastCGI location, then a segmentation fault might
occur in a worker process; the bug had appeared in 0.8.33.
Thanks to Yichun Zhang.
*) Bugfix: IMAP connections may hang until they timed out while talking
to Zimbra server.
Thanks to Alan Batie.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 17 May 2010 00:00:00 +0400 |
parents | c04fa65fe604 |
children | f200748c0ac8 |
comparison
equal
deleted
inserted
replaced
569:19b134bf21c0 | 570:8246d8a2c2be |
---|---|
302 | 302 |
303 return; | 303 return; |
304 | 304 |
305 default: | 305 default: |
306 #if (NGX_SUPPRESS_WARN) | 306 #if (NGX_SUPPRESS_WARN) |
307 line.len = 0; | 307 ngx_str_null(&line); |
308 line.data = NULL; | |
309 #endif | 308 #endif |
310 break; | 309 break; |
311 } | 310 } |
312 | 311 |
313 if (c->send(c, line.data, line.len) < (ssize_t) line.len) { | 312 if (c->send(c, line.data, line.len) < (ssize_t) line.len) { |
437 | 436 |
438 return; | 437 return; |
439 | 438 |
440 default: | 439 default: |
441 #if (NGX_SUPPRESS_WARN) | 440 #if (NGX_SUPPRESS_WARN) |
442 line.len = 0; | 441 ngx_str_null(&line); |
443 line.data = NULL; | |
444 #endif | 442 #endif |
445 break; | 443 break; |
446 } | 444 } |
447 | 445 |
448 if (c->send(c, line.data, line.len) < (ssize_t) line.len) { | 446 if (c->send(c, line.data, line.len) < (ssize_t) line.len) { |
662 | 660 |
663 return; | 661 return; |
664 | 662 |
665 default: | 663 default: |
666 #if (NGX_SUPPRESS_WARN) | 664 #if (NGX_SUPPRESS_WARN) |
667 line.len = 0; | 665 ngx_str_null(&line); |
668 line.data = NULL; | |
669 #endif | 666 #endif |
670 break; | 667 break; |
671 } | 668 } |
672 | 669 |
673 if (c->send(c, line.data, line.len) < (ssize_t) line.len) { | 670 if (c->send(c, line.data, line.len) < (ssize_t) line.len) { |
724 return NGX_AGAIN; | 721 return NGX_AGAIN; |
725 } | 722 } |
726 | 723 |
727 b->last += n; | 724 b->last += n; |
728 | 725 |
729 if (b->last - b->pos < 5) { | 726 if (b->last - b->pos < 4) { |
730 return NGX_AGAIN; | 727 return NGX_AGAIN; |
731 } | 728 } |
732 | 729 |
733 if (*(b->last - 2) != CR || *(b->last - 1) != LF) { | 730 if (*(b->last - 2) != CR || *(b->last - 1) != LF) { |
734 if (b->last == b->end) { | 731 if (b->last == b->end) { |