]> git.kaiwu.me - nginx.git/commit
always use buffer, if connection is buffered,
authorIgor Sysoev <igor@sysoev.ru>
Thu, 23 Oct 2008 05:58:10 +0000 (05:58 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Thu, 23 Oct 2008 05:58:10 +0000 (05:58 +0000)
commita862c46ffa3061fd24382cf37dc27a563de2bde2
treed7653300b1d35b8ff7b00d4d3b37ecdedacc77c8
parent0c689b7498591163dc55db3bffb8ed2664ae1452
always use buffer, if connection is buffered,
this fixes OpenSSL "bad write retry" error, when
*) nginx passed a single buf greater than our buffer (say 32K) to OpenSSL,
*) OpenSSL returns SSL_ERROR_WANT_WRITE,
*) after some time nginx has to send a new data,
*) so there are at least two bufs nginx does pass them directly to OpenSSL,
*) but copies the first buf part to buffer, and sends the buffer to OpenSSL.
*) because the data length is lesser than it was in previous SSL_write():
   16K < 32K, OpenSSL returns SSL_R_BAD_WRITE_RETRY.
src/event/ngx_event_openssl.c