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) {