Return-Path: Delivered-To: apmail-httpd-cvs-archive@www.apache.org Received: (qmail 27949 invoked from network); 27 Jun 2005 18:41:04 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 27 Jun 2005 18:41:04 -0000 Received: (qmail 75702 invoked by uid 500); 27 Jun 2005 18:41:03 -0000 Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 75516 invoked by uid 500); 27 Jun 2005 18:41:02 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 75503 invoked by uid 99); 27 Jun 2005 18:41:02 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 27 Jun 2005 11:41:02 -0700 Received: (qmail 26378 invoked by uid 65534); 27 Jun 2005 18:40:59 -0000 Message-ID: <20050627184059.26331.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r202027 - in /httpd/httpd/trunk: CHANGES server/mpm_common.c Date: Mon, 27 Jun 2005 18:40:59 -0000 To: cvs@httpd.apache.org From: pquerna@apache.org X-Mailer: svnmailer-1.0.2 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: pquerna Date: Mon Jun 27 11:40:56 2005 New Revision: 202027 URL: http://svn.apache.org/viewcvs?rev=202027&view=rev Log: *) server/mpm_common.c: Send a simple HTTP 1.0 request to every listener socket, instead of just closing the socket. This fixes shutdown of the Worker MPM on FreeBSD, when Accept Filters are enabled. In the future, we need a method to send a simple request for all protocols. Currently this is very specific to HTTP and FreeBSD's Accept Filter. Modified: httpd/httpd/trunk/CHANGES httpd/httpd/trunk/server/mpm_common.c Modified: httpd/httpd/trunk/CHANGES URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/CHANGES?rev=202027&r1=202026&r2=202027&view=diff ============================================================================== --- httpd/httpd/trunk/CHANGES (original) +++ httpd/httpd/trunk/CHANGES Mon Jun 27 11:40:56 2005 @@ -1,6 +1,10 @@ Changes with Apache 2.1.7 [Remove entries to the current 2.0 section below, when backported] + *) Fix shutdown for the Worker MPM when an Accept Filter is used. Instead of + just closing the socket, a HTTP request is made, to make sure the child is + always awakened. [Paul Querna] + Changes with Apache 2.1.6 *) Fix htdbm password validation for records which included comments. Modified: httpd/httpd/trunk/server/mpm_common.c URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/server/mpm_common.c?rev=202027&r1=202026&r2=202027&view=diff ============================================================================== --- httpd/httpd/trunk/server/mpm_common.c (original) +++ httpd/httpd/trunk/server/mpm_common.c Mon Jun 27 11:40:56 2005 @@ -546,6 +546,7 @@ */ static apr_status_t dummy_connection(ap_pod_t *pod) { + const char* srequest = "GET / HTTP/1.0\r\n\r\n"; apr_status_t rv; apr_socket_t *sock; apr_pool_t *p; @@ -596,6 +597,16 @@ "connect to listener on %pI", ap_listeners->bind_addr); } + /* Since some operating systems support buffering of data or entire + * requests in the kernel, we send a simple request, to make sure + * the server pops out of a blocking accept(). + */ + /* XXX: This is HTTP specific. We should look at the Protocol for each + * listener, and send the correct type of request to trigger any Accept + * Filters. + */ + apr_socket_send(sock, srequest, strlen(srequest)); + apr_socket_shutdown(sock, APR_SHUTDOWN_WRITE); apr_socket_close(sock); apr_pool_destroy(p);