From: Jeff Trawick Date: Wed, 9 Oct 2013 21:09:41 +0000 (+0000) Subject: core: Don't truncate output when sending is interrupted by a signal, X-Git-Tag: 2.5.0-alpha~4963 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b299ff2e98882fcf4a7c9c8f5ae7ab986f846c0d;p=apache core: Don't truncate output when sending is interrupted by a signal, such as from an exiting CGI process. PR: 55643 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1530793 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index fc7c3c1cc5..40309c7eeb 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) core: Don't truncate output when sending is interrupted by a signal, + such as from an exiting CGI process. PR 55643. [Jeff Trawick] + *) core: Add missing Reason-Phrase in HTTP response headers. PR 54946. [Rainer Jung] diff --git a/server/core_filters.c b/server/core_filters.c index e5588afbb1..f523f998fe 100644 --- a/server/core_filters.c +++ b/server/core_filters.c @@ -779,7 +779,9 @@ static apr_status_t send_brigade_blocking(apr_socket_t *s, pollset.reqevents = APR_POLLOUT; pollset.desc.s = s; apr_socket_timeout_get(s, &timeout); - rv = apr_poll(&pollset, 1, &nsds, timeout); + do { + rv = apr_poll(&pollset, 1, &nsds, timeout); + } while (APR_STATUS_IS_EINTR(rv)); if (rv != APR_SUCCESS) { break; }