]> granicus.if.org Git - apache/commitdiff
core: Don't truncate output when sending is interrupted by a signal,
authorJeff Trawick <trawick@apache.org>
Wed, 9 Oct 2013 21:09:41 +0000 (21:09 +0000)
committerJeff Trawick <trawick@apache.org>
Wed, 9 Oct 2013 21:09:41 +0000 (21:09 +0000)
      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

CHANGES
server/core_filters.c

diff --git a/CHANGES b/CHANGES
index fc7c3c1cc534c3bdd9f175d3e005c3aa59269f5c..40309c7eeb8b17e43d3adc12b94da1bc38d58564 100644 (file)
--- 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]
 
index e5588afbb18b9caafbab80ba11ef2e5725cee16e..f523f998fe1446f2f0b6e402437cef6fe3b34f93 100644 (file)
@@ -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;
                 }