httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: AW: 2.2 mod_http_proxy and "partial" pages
Date Tue, 13 Dec 2005 16:55:17 GMT
Eyes please... The coffee is VERY week this morning :)

Index: modules/proxy/mod_proxy_http.c
===================================================================
--- modules/proxy/mod_proxy_http.c      (revision 356419)
+++ modules/proxy/mod_proxy_http.c      (working copy)
@@ -1481,12 +1481,19 @@
                      }
                      else if (rv != APR_SUCCESS) {
                          /* In this case, we are in real trouble  
because
-                         * our backend bailed on us, so abort our
-                         * connection to our user too.
+                         * our backend bailed on us. Pass along a  
502 error
+                         * bucket
                           */
                          ap_log_cerror(APLOG_MARK, APLOG_ERR, rv, c,
                                        "proxy: error reading  
response");
-                        c->aborted = 1;
+                        r->no_cache = 1;
+                        e = ap_bucket_error_create(HTTP_BAD_GATEWAY,  
NULL,
+                                                   c->pool, c- 
 >bucket_alloc);
+                        APR_BRIGADE_INSERT_TAIL(bb, e);
+                        e = apr_bucket_eos_create(f->c->bucket_alloc);
+                        APR_BRIGADE_INSERT_TAIL(bb, e);
+                        ap_pass_brigade(r->output_filters, bb);
+                        backend->close = 1;
                          break;
                      }
                      /* next time try a non-blocking read */
Index: modules/cache/mod_disk_cache.c
===================================================================
--- modules/cache/mod_disk_cache.c      (revision 356419)
+++ modules/cache/mod_disk_cache.c      (working copy)
@@ -1010,7 +1010,7 @@
       * sanity checks.
       */
      if (APR_BUCKET_IS_EOS(APR_BRIGADE_LAST(bb))) {
-        if (r->connection->aborted) {
+        if (r->connection->aborted || r->no_cache) {
              ap_log_error(APLOG_MARK, APLOG_INFO, 0, r->server,
                           "disk_cache: Discarding body for URL %s "
                           "because connection has been aborted.",


Mime
View raw message