summaryrefslogtreecommitdiff
path: root/src/mail/ngx_mail_handler.c
diff options
context:
space:
mode:
authornginx <nginx@nginx.org>2014-04-08 14:31:42 +0000
committerJon Kolb <kolbyjack@gmail.com>2014-04-08 14:31:42 +0000
commitd2ce3a1fcb5e0f7f27d22293832ced78b2cc744d (patch)
tree7bf028a91c7a083809ac298947ce157e02e884a4 /src/mail/ngx_mail_handler.c
parentc6e7bb24dc541324343df6e734a44aa8e75b446f (diff)
downloadnginx-1.5.tar.gz
Changes with nginx 1.5.13 08 Apr 2014v1.5.13nginx-1.5
*) Change: improved hash table handling; the default values of the "variables_hash_max_size" and "types_hash_bucket_size" were changed to 1024 and 64 respectively. *) Feature: the ngx_http_mp4_module now supports the "end" argument. *) Feature: byte ranges support in the ngx_http_mp4_module and while saving responses to cache. *) Bugfix: alerts "ngx_slab_alloc() failed: no memory" no longer logged when using shared memory in the "ssl_session_cache" directive and in the ngx_http_limit_req_module. *) Bugfix: the "underscores_in_headers" directive did not allow underscore as a first character of a header. Thanks to Piotr Sikora. *) Bugfix: cache manager might hog CPU on exit in nginx/Windows. *) Bugfix: nginx/Windows terminated abnormally if the "ssl_session_cache" directive was used with the "shared" parameter. *) Bugfix: in the ngx_http_spdy_module.
Diffstat (limited to 'src/mail/ngx_mail_handler.c')
-rw-r--r--src/mail/ngx_mail_handler.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mail/ngx_mail_handler.c b/src/mail/ngx_mail_handler.c
index 9212a121c..47ddb0dcf 100644
--- a/src/mail/ngx_mail_handler.c
+++ b/src/mail/ngx_mail_handler.c
@@ -559,8 +559,13 @@ ngx_mail_send(ngx_event_t *wev)
n = c->send(c, s->out.data, s->out.len);
if (n > 0) {
+ s->out.data += n;
s->out.len -= n;
+ if (s->out.len != 0) {
+ goto again;
+ }
+
if (wev->timer_set) {
ngx_del_timer(wev);
}
@@ -584,6 +589,8 @@ ngx_mail_send(ngx_event_t *wev)
/* n == NGX_AGAIN */
+again:
+
cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module);
ngx_add_timer(c->write, cscf->timeout);