httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stodd...@apache.org
Subject cvs commit: httpd-2.0/modules/proxy proxy_http.c
Date Fri, 09 Jan 2004 03:04:41 GMT
stoddard    2004/01/08 19:04:41

  Modified:    .        CHANGES
               modules/proxy proxy_http.c
  Log:
  mod_proxy hangs when both KeepAlive and ProxyErrorOverride are enabled,
  and a non-200 response without a body is generated by the backend
  server.
  
  Submitted by: Graham Wiseman, Richard Reiner
  Reviewed by: Richard Reiner, Bill Stoddard
  
  Revision  Changes    Path
  1.1356    +6 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.1355
  retrieving revision 1.1356
  diff -u -r1.1355 -r1.1356
  --- CHANGES	8 Jan 2004 16:26:52 -0000	1.1355
  +++ CHANGES	9 Jan 2004 03:04:41 -0000	1.1356
  @@ -1,6 +1,12 @@
   Changes with Apache 2.1.0-dev
   
     [Remove entries to the current 2.0 section below, when backported]
  +  *) proxy_http fix: mod_proxy hangs when both KeepAlive and 
  +     ProxyErrorOverride are enabled, and a non-200 response without a 
  +     body is generated by the backend server. (e.g.: a client makes a 
  +     request containing the "If-Modified-Since" and "If-None-Match" 
  +     headers, to which the backend server respond with status 304.)
  +     [Graham Wiseman <gwiseman fscinternet.com>, Richard Reiner]
   
     *) mod_ssl: Add support for distributed session cache using 'distcache'.
        [Geoff Thorpe <geoff geoffthorpe.net>]
  
  
  
  1.177     +7 -1      httpd-2.0/modules/proxy/proxy_http.c
  
  Index: proxy_http.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/proxy/proxy_http.c,v
  retrieving revision 1.176
  retrieving revision 1.177
  diff -u -r1.176 -r1.177
  --- proxy_http.c	1 Jan 2004 13:26:21 -0000	1.176
  +++ proxy_http.c	9 Jan 2004 03:04:41 -0000	1.177
  @@ -1091,7 +1091,13 @@
                */
               int status = r->status;
               r->status = HTTP_OK;
  -            ap_discard_request_body(rp);
  +            /* Discard body, if one is expected */
  +            if ((status > 199) && /* not any 1xx response */
  +                (status != HTTP_NO_CONTENT) && /* not 204 */
  +                (status != HTTP_RESET_CONTENT) && /* not 205 */
  +                (status != HTTP_NOT_MODIFIED)) { /* not 304 */
  +               ap_discard_request_body(rp);
  +           }
               return status;
           }
       } else 
  
  
  

Mime
View raw message