Loading CHANGES +6 −0 Changes for CHANGES: 6 added lines, 0 removed lines. Original line number Diff line number Diff line -*- coding: utf-8 -*- Changes with Apache 2.0.56 *) Elimiated the NET_TIME filter, restructuring the timeout logic. This provides a working mod_echo on all platforms, and ensures any custom protocol module is at least given an initial timeout value based on the <VirtualHost > context's Timeout directive. [William Rowe] *) mod_ssl: Correct issue where mod_ssl does not pick up the ssl-unclean-shutdown setting when configured. PR 34452. [Joe Orton] Loading STATUS +0 −10 Changes for STATUS: 0 added lines, 10 removed lines. Original line number Diff line number Diff line Loading @@ -147,16 +147,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK: as well. colm: another +1 on the later patch too. *) Fix all non-http protocol modules that were modeled after the broken mod_echo.c example; remove the -initial- timeout setting from NET_TIME (never inserted by non-request based protocols) and move it to the core pre_connection logic, so every core connection can read with timeout on Linux, Solaris, instead of read (untimed) blocking on Linux, and failing read non-block on Solaris. Leaves NET_TIME intact until after the 2.0.x branch. http://people.apache.org/~wrowe/httpd-2.0-proto-timeout.patch +1: wrowe, colm, jim *) mod_proxy: Fix PR37145 (data loss with httpd-2.0.55 reverse proxy method=post). Trunk version of patch: Loading server/core.c +17 −6 Changes for server/core.c: 17 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -3679,11 +3679,9 @@ static int net_time_filter(ap_filter_t *f, apr_bucket_brigade *b, } if (mode != AP_MODE_INIT && mode != AP_MODE_EATCRLF) { if (ctx->first_line) { if (keptalive && ctx->first_line) { apr_socket_timeout_set(ctx->csd, keptalive ? f->c->base_server->keep_alive_timeout : f->c->base_server->timeout); f->c->base_server->keep_alive_timeout); ctx->first_line = 0; } else { Loading Loading @@ -4493,10 +4491,9 @@ static conn_rec *core_create_conn(apr_pool_t *ptrans, server_rec *server, static int core_pre_connection(conn_rec *c, void *csd) { core_net_rec *net = apr_palloc(c->pool, sizeof(*net)); #ifdef AP_MPM_DISABLE_NAGLE_ACCEPTED_SOCK apr_status_t rv; #ifdef AP_MPM_DISABLE_NAGLE_ACCEPTED_SOCK /* BillS says perhaps this should be moved to the MPMs. Some OSes * allow listening socket attributes to be inherited by the * accept sockets which means this call only needs to be made Loading @@ -4518,6 +4515,20 @@ static int core_pre_connection(conn_rec *c, void *csd) "apr_socket_opt_set(APR_TCP_NODELAY)"); } #endif /* The core filter requires the timeout mode to be set, which * incidentally sets the socket to be nonblocking. If this * is not initialized correctly, Linux - for example - will * be initially blocking, while Solaris will be non blocking * and any initial read will fail. */ rv = apr_socket_timeout_set(csd, c->base_server->timeout); if (rv != APR_SUCCESS) { /* expected cause is that the client disconnected already */ ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, c, "apr_socket_timeout_set"); } net->c = c; net->in_ctx = NULL; net->out_ctx = NULL; Loading Loading
CHANGES +6 −0 Changes for CHANGES: 6 added lines, 0 removed lines. Original line number Diff line number Diff line -*- coding: utf-8 -*- Changes with Apache 2.0.56 *) Elimiated the NET_TIME filter, restructuring the timeout logic. This provides a working mod_echo on all platforms, and ensures any custom protocol module is at least given an initial timeout value based on the <VirtualHost > context's Timeout directive. [William Rowe] *) mod_ssl: Correct issue where mod_ssl does not pick up the ssl-unclean-shutdown setting when configured. PR 34452. [Joe Orton] Loading
STATUS +0 −10 Changes for STATUS: 0 added lines, 10 removed lines. Original line number Diff line number Diff line Loading @@ -147,16 +147,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK: as well. colm: another +1 on the later patch too. *) Fix all non-http protocol modules that were modeled after the broken mod_echo.c example; remove the -initial- timeout setting from NET_TIME (never inserted by non-request based protocols) and move it to the core pre_connection logic, so every core connection can read with timeout on Linux, Solaris, instead of read (untimed) blocking on Linux, and failing read non-block on Solaris. Leaves NET_TIME intact until after the 2.0.x branch. http://people.apache.org/~wrowe/httpd-2.0-proto-timeout.patch +1: wrowe, colm, jim *) mod_proxy: Fix PR37145 (data loss with httpd-2.0.55 reverse proxy method=post). Trunk version of patch: Loading
server/core.c +17 −6 Changes for server/core.c: 17 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -3679,11 +3679,9 @@ static int net_time_filter(ap_filter_t *f, apr_bucket_brigade *b, } if (mode != AP_MODE_INIT && mode != AP_MODE_EATCRLF) { if (ctx->first_line) { if (keptalive && ctx->first_line) { apr_socket_timeout_set(ctx->csd, keptalive ? f->c->base_server->keep_alive_timeout : f->c->base_server->timeout); f->c->base_server->keep_alive_timeout); ctx->first_line = 0; } else { Loading Loading @@ -4493,10 +4491,9 @@ static conn_rec *core_create_conn(apr_pool_t *ptrans, server_rec *server, static int core_pre_connection(conn_rec *c, void *csd) { core_net_rec *net = apr_palloc(c->pool, sizeof(*net)); #ifdef AP_MPM_DISABLE_NAGLE_ACCEPTED_SOCK apr_status_t rv; #ifdef AP_MPM_DISABLE_NAGLE_ACCEPTED_SOCK /* BillS says perhaps this should be moved to the MPMs. Some OSes * allow listening socket attributes to be inherited by the * accept sockets which means this call only needs to be made Loading @@ -4518,6 +4515,20 @@ static int core_pre_connection(conn_rec *c, void *csd) "apr_socket_opt_set(APR_TCP_NODELAY)"); } #endif /* The core filter requires the timeout mode to be set, which * incidentally sets the socket to be nonblocking. If this * is not initialized correctly, Linux - for example - will * be initially blocking, while Solaris will be non blocking * and any initial read will fail. */ rv = apr_socket_timeout_set(csd, c->base_server->timeout); if (rv != APR_SUCCESS) { /* expected cause is that the client disconnected already */ ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, c, "apr_socket_timeout_set"); } net->c = c; net->in_ctx = NULL; net->out_ctx = NULL; Loading