You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ma...@hyperreal.org on 1998/08/27 18:02:38 UTC

cvs commit: apache-1.3/src/modules/proxy proxy_http.c

martin      98/08/27 09:02:38

  Modified:    src      CHANGES
               src/modules/proxy proxy_http.c
  Log:
  Triggered by the recent "Via:" header changes, the proxy module would
  dump core for replies with invalid headers (e.g., duplicate
  "HTTP/1.0 200 OK" lines). These errors are now logged and the
  core dump is avoided. Also, broken replies are not cached.
  Additionally, connection problems to an upstream server are now logged
  in the error_log, besides being returned to client as before.
  
  Revision  Changes    Path
  1.1038    +6 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1037
  retrieving revision 1.1038
  diff -u -r1.1037 -r1.1038
  --- CHANGES	1998/08/26 20:01:19	1.1037
  +++ CHANGES	1998/08/27 16:02:32	1.1038
  @@ -1,5 +1,11 @@
   Changes with Apache 1.3.2
   
  +  *) Triggered by the recent "Via:" header changes, the proxy module would
  +     dump core for replies with invalid headers (e.g., duplicate
  +     "HTTP/1.0 200 OK" lines). These errors are now logged and the
  +     core dump is avoided. Also, broken replies are not cached.
  +     [Martin Kraemer]
  +
     *) new `GprofDir' directive when compiled with -DGPROF, where gprof can
        plop gmon.out profile data for each child [Doug MacEachern]
      
  
  
  
  1.59      +10 -0     apache-1.3/src/modules/proxy/proxy_http.c
  
  Index: proxy_http.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_http.c,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- proxy_http.c	1998/08/16 20:51:56	1.58
  +++ proxy_http.c	1998/08/27 16:02:37	1.59
  @@ -366,6 +366,9 @@
       if (len == -1 || len == 0) {
   	ap_bclose(f);
   	ap_kill_timeout(r);
  +	ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
  +		     "ap_bgets() - proxy receive - Error reading from remote server %s",
  +		     proxyhost ? proxyhost : desthost);
   	return ap_proxyerror(r, "Error reading from remote server");
       }
   
  @@ -396,6 +399,13 @@
   /* Also, take care with headers with multiple occurences. */
   
   	resp_hdrs = ap_proxy_read_headers(p, buffer, HUGE_STRING_LEN, f);
  +	if (resp_hdrs == NULL) {
  +	    ap_log_error(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, r->server,
  +		 "proxy: Bad HTTP/%d.%d header returned by %s (%s)",
  +		 major, minor, r->uri, r->method);
  +	    resp_hdrs = ap_make_table(p, 20);
  +	    nocache = 1;    /* do not cache this broken file */
  +	}
   
   	if (conf->viaopt != via_off && conf->viaopt != via_block) {
   	    /* Create a "Via:" response header entry and merge it */