]> granicus.if.org Git - apache/commitdiff
ap_proxy_http_request needs to check the return status of ap_pass_brigade
authorDoug MacEachern <dougm@apache.org>
Sat, 30 Mar 2002 06:19:14 +0000 (06:19 +0000)
committerDoug MacEachern <dougm@apache.org>
Sat, 30 Mar 2002 06:19:14 +0000 (06:19 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94333 13f79535-47bb-0310-9956-ffa450edef68

modules/proxy/proxy_http.c

index de9f8acf62d9d66f4643eecaab0c9c1fdbdcdce6..75a8d613afc337d17dff8dd63bdfded2287adb93 100644 (file)
@@ -423,6 +423,8 @@ apr_status_t ap_proxy_http_request(apr_pool_t *p, request_rec *r,
     const apr_array_header_t *headers_in_array;
     const apr_table_entry_t *headers_in;
     int counter;
+    apr_status_t status;
+
     /*
      * Send the HTTP/1.1 request to the remote server
      */
@@ -598,7 +600,14 @@ apr_status_t ap_proxy_http_request(apr_pool_t *p, request_rec *r,
     e = apr_bucket_flush_create(c->bucket_alloc);
     APR_BRIGADE_INSERT_TAIL(bb, e);
 
-    ap_pass_brigade(origin->output_filters, bb);
+    status = ap_pass_brigade(origin->output_filters, bb);
+
+    if (status != APR_SUCCESS) {
+        ap_log_error(APLOG_MARK, APLOG_ERR, status, r->server,
+                     "proxy: request failed to %pI (%s)",
+                     p_conn->addr, p_conn->name);
+        return status;
+    }
 
     /* send the request data, if any. */
     if (ap_should_client_block(r)) {
@@ -607,11 +616,17 @@ apr_status_t ap_proxy_http_request(apr_pool_t *p, request_rec *r,
             APR_BRIGADE_INSERT_TAIL(bb, e);
             e = apr_bucket_flush_create(c->bucket_alloc);
             APR_BRIGADE_INSERT_TAIL(bb, e);
-            ap_pass_brigade(origin->output_filters, bb);
+            status = ap_pass_brigade(origin->output_filters, bb);
+            if (status != APR_SUCCESS) {
+                ap_log_error(APLOG_MARK, APLOG_ERR, status, r->server,
+                             "proxy: pass request data failed to %pI (%s)",
+                             p_conn->addr, p_conn->name);
+                return status;
+            }
             apr_brigade_cleanup(bb);
         }
     }
-    return OK;
+    return APR_SUCCESS;
 }
 
 static