Mercurial > hg > nginx-vendor-0-6
comparison src/event/ngx_event_openssl.c @ 378:fc497c1dfb7c NGINX_0_6_33
nginx 0.6.33
*) Feature: now nginx returns the 405 status code for POST method
requesting a static file only if the file exists.
*) Workaround: compatibility with glibc 2.3.
Thanks to Eric Benson and Maxim Dounin.
*) Bugfix: the resolver did not understand big DNS responses.
Thanks to Zyb.
*) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
error.
*) Bugfix: the ngx_http_charset_module did not understand quoted
charset name received from backend.
*) Bugfix: if the "max_fails=0" parameter was used in upstream with
several servers, then a worker process exited on a SIGFPE signal.
Thanks to Maxim Dounin.
*) Bugfix: the $r->header_in() method did not return value of the
"Host", "User-Agent", and "Connection" request header lines; the bug
had appeared in 0.6.32.
*) Bugfix: a full response was returned for request method HEAD while
redirection via an "error_page" directive.
*) Bugfix: if a directory has search only rights and the first index
file was absent, then nginx returned the 500 status code.
*) Bugfix: of recursive error_page for 500 status code.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Thu, 20 Nov 2008 00:00:00 +0300 |
parents | d13234035cad |
children | 09b703ae3ba5 |
comparison
equal
deleted
inserted
replaced
377:15c4ba3bc2fa | 378:fc497c1dfb7c |
---|---|
185 | 185 |
186 if (ngx_ssl_protocols[protocols >> 1] != 0) { | 186 if (ngx_ssl_protocols[protocols >> 1] != 0) { |
187 SSL_CTX_set_options(ssl->ctx, ngx_ssl_protocols[protocols >> 1]); | 187 SSL_CTX_set_options(ssl->ctx, ngx_ssl_protocols[protocols >> 1]); |
188 } | 188 } |
189 | 189 |
190 /* | |
191 * we need this option because in ngx_ssl_send_chain() | |
192 * we may switch to a buffered write and may copy leftover part of | |
193 * previously unbuffered data to our internal buffer | |
194 */ | |
195 SSL_CTX_set_mode(ssl->ctx, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); | |
196 | |
197 SSL_CTX_set_read_ahead(ssl->ctx, 1); | 190 SSL_CTX_set_read_ahead(ssl->ctx, 1); |
198 | 191 |
199 return NGX_OK; | 192 return NGX_OK; |
200 } | 193 } |
201 | 194 |
774 int n; | 767 int n; |
775 ngx_uint_t flush; | 768 ngx_uint_t flush; |
776 ssize_t send, size; | 769 ssize_t send, size; |
777 ngx_buf_t *buf; | 770 ngx_buf_t *buf; |
778 | 771 |
779 if (!c->ssl->buffer | 772 if (!c->ssl->buffer) { |
780 || (in && in->next == NULL && !(c->buffered & NGX_SSL_BUFFERED))) | |
781 { | |
782 /* | |
783 * we avoid a buffer copy if | |
784 * we do not need to buffer the output | |
785 * or the incoming buf is a single and our buffer is empty | |
786 */ | |
787 | 773 |
788 while (in) { | 774 while (in) { |
789 if (ngx_buf_special(in->buf)) { | 775 if (ngx_buf_special(in->buf)) { |
790 in = in->next; | 776 in = in->next; |
791 continue; | 777 continue; |