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;