comparison src/event/ngx_event_openssl.c @ 540: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
539:c88014f74832 540: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 }