if a request was finished (con->file_finished = 1) and the state
machine was triggered, but the write queue was empty, it didn't
actually finish the request.
From: Stefan Bühler <stbuehler@web.de>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2973 152afb58-edef-0310-8abb-c4023f1b3aa9
* don't fiddle with ssl internals
* renegotiations should be safe with recent openssl versions,
openssl itself should reject unsafe renegotiations
From: Stefan Bühler <stbuehler@web.de>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2890 152afb58-edef-0310-8abb-c4023f1b3aa9
con->conf.is_ssl got removed and replaced by:
* con->conf.ssl_enabled for the config var "ssl.engine" - it is only
used to determine which server-sockets should use ssl. (usually not
needed as it is mandatory and enough to set ssl.pemfile anyway)
* con->srv_socket->is_ssl to detect the actual ssl status of the
bound socket, which is the same as the ssl status of the connection
* con->uri.scheme for the actual $HTTP["scheme"] value, also used for
the CGI "HTTPS=ON" variable. This defaults to "https" if the
connection uses ssl, but can be changed for example by mod_extforward
if X-Forwarded-Proto: is set to either "http" or "https" (other values
are ignored right now)
Also removed the broken srv_socket->is_proxy_ssl as it was a connection
value in a server_socket struct...
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2887 152afb58-edef-0310-8abb-c4023f1b3aa9
* Remove ssl_error_want_reuse_buffer for SSL_read:
Although the manual states we have to use the same arguments in the
next call after SSL_ERROR_WANT_*, it has been running without this
in 1.5 for a long time now.
* As POST-data chunks get copied to the next queue, we reuse chunks
there as well.
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2710 152afb58-edef-0310-8abb-c4023f1b3aa9
* This patch may "break" some configs, if they do stupid things. Like setting
ssl.pemfile to a not existing file in a "non-socket/non-ssl" block.
Fix them! :)
From: Peter Colberg <peter@colberg.org>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2648 152afb58-edef-0310-8abb-c4023f1b3aa9
Fix linger-on-close behaviour to avoid rare failure conditions.
- Don't assume that when FIONREAD returns 0, that it's safe to close the
socket. There may still be data that's about to arrive, and we'll still
send an RST if the socket is confused, potentially confusing the client.
- Don't close the connection immediately after sending a successful
response; linger-on-close was only happening in the case of errors, but it
has to happen in case of success too, because the client doesn't
necessarily know we're about to close after this request, and may have
sent additional ones. (eg. if server.max-keep-alive-requests is small.)
- Don't close the connection immediately even if keep_alive is 0; there are
several reasons keep_alive can be 0. If the client requested Connection:
close, then it would be okay to close right away, since we can assume he
didn't send anything else. But it's harmless (and more resilient) to do
the lingering regardless.
- Increase the lingering timeout from 1s to 30s. In the vast majority of
cases, the timeout never kicks in anyway. The only times when it might
be needed are a) in race conditions, in which case timing out too early
defeats the purpose of lingering at all; b) if there's a lot of data,
which is basically the same as (a); or c) if the remote end disappears,
in which case we now suffer through a longer timeout... but we would
anyway, if we were waiting for them to receive our transmission.
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2636 152afb58-edef-0310-8abb-c4023f1b3aa9
- Use const void* in instead of unsigned char* in MD5_Update
(same as in the openssl api, to avoid signed/unsigned char* warnings)
- Add const to some pointers in md5.c
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2165 152afb58-edef-0310-8abb-c4023f1b3aa9
do not generate a "Content-Length: 0" header for HEAD requests, added test too
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2099 152afb58-edef-0310-8abb-c4023f1b3aa9
- do not touch if it is a HEAD request (but set file_finished)
- body gets removed for req method OPTION and some status codes
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2098 152afb58-edef-0310-8abb-c4023f1b3aa9