]> granicus.if.org Git - apache/commitdiff
Further refinement for PR41056 / PR 19954 (mostly-fixed in r480135.)
authorJim Jagielski <jim@apache.org>
Wed, 7 Feb 2007 14:26:37 +0000 (14:26 +0000)
committerJim Jagielski <jim@apache.org>
Wed, 7 Feb 2007 14:26:37 +0000 (14:26 +0000)
We assume that a successful read but an empty brigade
is NOT cause for EAGAIN. Testing may or may not
confirm this assumption, in which case that test
may be required as well.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@504559 13f79535-47bb-0310-9956-ffa450edef68

modules/http/http_filters.c

index 75d84cc89a7b3319f80386adeda80e7a478d81bb..a28fbafc1edb1b91ce75f470dfe603305ffce9b6 100644 (file)
@@ -295,6 +295,10 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b,
                     rv = ap_get_brigade(f->next, bb, AP_MODE_GETLINE,
                                         block, 0);
                     apr_brigade_cleanup(bb);
+                    if (block == APR_NONBLOCK_READ &&
+                        (APR_STATUS_IS_EAGAIN(rv))) {
+                        return APR_EAGAIN;
+                    }
                 } else {
                     rv = APR_SUCCESS;
                 }