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 */