comparison src/event/ngx_event_openssl.c @ 416:b4f69f2ef02c NGINX_0_7_20

nginx 0.7.20 *) Changes in the ngx_http_gzip_filter_module. *) Feature: the ngx_http_limit_req_module. *) Bugfix: worker processes might exit on a SIGBUS signal on sparc and ppc platforms; the bug had appeared in 0.7.3. Thanks to Maxim Dounin. *) Bugfix: the "proxy_pass http://host/some:uri" directives did not work; the bug had appeared in 0.7.12. *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" error. *) Bugfix: the ngx_http_secure_link_module did not work inside locations, whose names are less than 3 characters. *) Bugfix: $server_addr variable might have no value.
author Igor Sysoev <http://sysoev.ru>
date Mon, 10 Nov 2008 00:00:00 +0300
parents 05981f639d21
children ad0a34a8efa6
comparison
equal deleted inserted replaced
415:5410f1e19796 416:b4f69f2ef02c
186 186
187 if (ngx_ssl_protocols[protocols >> 1] != 0) { 187 if (ngx_ssl_protocols[protocols >> 1] != 0) {
188 SSL_CTX_set_options(ssl->ctx, ngx_ssl_protocols[protocols >> 1]); 188 SSL_CTX_set_options(ssl->ctx, ngx_ssl_protocols[protocols >> 1]);
189 } 189 }
190 190
191 /*
192 * we need this option because in ngx_ssl_send_chain()
193 * we may switch to a buffered write and may copy leftover part of
194 * previously unbuffered data to our internal buffer
195 */
196 SSL_CTX_set_mode(ssl->ctx, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER);
197
198 SSL_CTX_set_read_ahead(ssl->ctx, 1); 191 SSL_CTX_set_read_ahead(ssl->ctx, 1);
199 192
200 return NGX_OK; 193 return NGX_OK;
201 } 194 }
202 195
858 int n; 851 int n;
859 ngx_uint_t flush; 852 ngx_uint_t flush;
860 ssize_t send, size; 853 ssize_t send, size;
861 ngx_buf_t *buf; 854 ngx_buf_t *buf;
862 855
863 if (!c->ssl->buffer 856 if (!c->ssl->buffer) {
864 || (in && in->next == NULL && !(c->buffered & NGX_SSL_BUFFERED)))
865 {
866 /*
867 * we avoid a buffer copy if
868 * we do not need to buffer the output
869 * or the incoming buf is a single and our buffer is empty
870 */
871 857
872 while (in) { 858 while (in) {
873 if (ngx_buf_special(in->buf)) { 859 if (ngx_buf_special(in->buf)) {
874 in = in->next; 860 in = in->next;
875 continue; 861 continue;