Mercurial > hg > nginx-mail
comparison src/event/ngx_event_openssl.c @ 583:c04fa65fe604 NGINX_0_8_22
nginx 0.8.22
*) Feature: the "proxy_bind", "fastcgi_bind", and "memcached_bind"
directives.
*) Feature: the "access" and the "deny" directives support IPv6.
*) Feature: the "set_real_ip_from" directive supports IPv6 addresses in
request headers.
*) Feature: the "unix:" parameter of the "set_real_ip_from" directive.
*) Bugfix: nginx did not delete unix domain socket after configuration
testing.
*) Bugfix: nginx deleted unix domain socket while online upgrade.
*) Bugfix: the "!-x" operator did not work.
Thanks to Maxim Dounin.
*) Bugfix: a segmentation fault might occur in a worker process, if
limit_rate was used in HTTPS server.
Thanks to Maxim Dounin.
*) Bugfix: a segmentation fault might occur in a worker process while
$limit_rate logging.
Thanks to Maxim Dounin.
*) Bugfix: a segmentation fault might occur in a worker process, if
there was no "listen" directive in "server" block; the bug had
appeared in 0.8.21.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 03 Nov 2009 00:00:00 +0300 |
parents | 4c5d2c627a6c |
children | 2b9e388c61f1 |
comparison
equal
deleted
inserted
replaced
582:c88014f74832 | 583:c04fa65fe604 |
---|---|
944 send = 0; | 944 send = 0; |
945 flush = (in == NULL) ? 1 : 0; | 945 flush = (in == NULL) ? 1 : 0; |
946 | 946 |
947 for ( ;; ) { | 947 for ( ;; ) { |
948 | 948 |
949 while (in && buf->last < buf->end) { | 949 while (in && buf->last < buf->end && send < limit) { |
950 if (in->buf->last_buf || in->buf->flush) { | 950 if (in->buf->last_buf || in->buf->flush) { |
951 flush = 1; | 951 flush = 1; |
952 } | 952 } |
953 | 953 |
954 if (ngx_buf_special(in->buf)) { | 954 if (ngx_buf_special(in->buf)) { |
971 "SSL buf copy: %d", size); | 971 "SSL buf copy: %d", size); |
972 | 972 |
973 ngx_memcpy(buf->last, in->buf->pos, size); | 973 ngx_memcpy(buf->last, in->buf->pos, size); |
974 | 974 |
975 buf->last += size; | 975 buf->last += size; |
976 | |
977 in->buf->pos += size; | 976 in->buf->pos += size; |
977 send += size; | |
978 | 978 |
979 if (in->buf->pos == in->buf->last) { | 979 if (in->buf->pos == in->buf->last) { |
980 in = in->next; | 980 in = in->next; |
981 } | 981 } |
982 } | 982 } |
997 c->buffered |= NGX_SSL_BUFFERED; | 997 c->buffered |= NGX_SSL_BUFFERED; |
998 return in; | 998 return in; |
999 } | 999 } |
1000 | 1000 |
1001 buf->pos += n; | 1001 buf->pos += n; |
1002 send += n; | |
1003 c->sent += n; | 1002 c->sent += n; |
1004 | 1003 |
1005 if (n < size) { | 1004 if (n < size) { |
1006 break; | 1005 break; |
1007 } | 1006 } |