diff --git a/NEWS b/NEWS index b9bd48fc..e82b90b0 100644 --- a/NEWS +++ b/NEWS @@ -4,7 +4,7 @@ NEWS ==== - 1.4.36 - * + * use keep-alive timeout while waiting for HTTP headers; use always the read timeout while waiting for the HTTP body - 1.4.35 - 2014-03-12 * [network/ssl] fix build error if TLSEXT is disabled diff --git a/src/server.c b/src/server.c index 56919219..d47fd625 100644 --- a/src/server.c +++ b/src/server.c @@ -1296,23 +1296,25 @@ int main (int argc, char **argv) { if (con->state == CON_STATE_READ || con->state == CON_STATE_READ_POST) { - if (con->request_count == 1) { + if (con->request_count == 1 || con->state == CON_STATE_READ_POST) { if (srv->cur_ts - con->read_idle_ts > con->conf.max_read_idle) { /* time - out */ -#if 0 - log_error_write(srv, __FILE__, __LINE__, "sd", - "connection closed - read-timeout:", con->fd); -#endif + if (con->conf.log_request_handling) { + log_error_write(srv, __FILE__, __LINE__, "sd", + "connection closed - read timeout:", con->fd); + } + connection_set_state(srv, con, CON_STATE_ERROR); changed = 1; } } else { if (srv->cur_ts - con->read_idle_ts > con->keep_alive_idle) { /* time - out */ -#if 0 - log_error_write(srv, __FILE__, __LINE__, "sd", - "connection closed - read-timeout:", con->fd); -#endif + if (con->conf.log_request_handling) { + log_error_write(srv, __FILE__, __LINE__, "sd", + "connection closed - keep-alive timeout:", con->fd); + } + connection_set_state(srv, con, CON_STATE_ERROR); changed = 1; }