From f64f95d9e1d2753245ace161f244efcecc751c2d Mon Sep 17 00:00:00 2001 From: Paul Querna Date: Sat, 11 Dec 2004 09:53:16 +0000 Subject: [PATCH] * Add bits to use APR_TCP_DEFER_ACCEPT * Log Warnings when adding defer accept or an accept filter fails. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@111596 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 4 ++++ server/listen.c | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index ffc9d164f9..d5233b10fb 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.1.3 [Remove entries to the current 2.0 section below, when backported] + *) core: Add support for APR_TCP_DEFER_ACCEPT to defer accepting + of a connection until data is available. + [Paul Querna] + *) conf: Remove AddDefaultCharset from the default configuration because setting a site-wide default does more harm than good. PR 23421. [Roy Fielding] diff --git a/server/listen.c b/server/listen.c index 461ebc4d5b..4ac6734f93 100644 --- a/server/listen.c +++ b/server/listen.c @@ -164,7 +164,20 @@ static apr_status_t make_sock(apr_pool_t *p, ap_listen_rec *server) #endif #endif #endif - apr_socket_accept_filter(s, ACCEPT_FILTER_NAME, ""); + stat = apr_socket_accept_filter(s, ACCEPT_FILTER_NAME, ""); + if (stat != APR_SUCCESS && !APR_STATUS_IS_ENOTIMPL(stat)) { + ap_log_perror(APLOG_MARK, APLOG_WARNING, stat, p, + "Failed to enable the '%s' Accept Filter", + ACCEPT_FILTER_NAME); + } +#else +#ifdef APR_TCP_DEFER_ACCEPT + stat = apr_socket_opt_set(s, APR_TCP_DEFER_ACCEPT, 1); + if (stat != APR_SUCCESS && !APR_STATUS_IS_ENOTIMPL(stat)) { + ap_log_perror(APLOG_MARK, APLOG_WARNING, stat, p, + "Failed to enable APR_TCP_DEFER_ACCEPT"); + } +#endif #endif server->sd = s; -- 2.40.0