httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <>
Subject ie4pr2
Date Thu, 17 Jul 1997 04:13:00 GMT
When making a java request it uses one of the Java1.0 or JDK/1.0
user-agents but also makes an HTTP/1.1 request.  When our code gets that
in combo with a force-response-1.0 it responds with something that really
isn't 1.0.  In particular it still chunks.  Given our FAQ suggestions,
this is a problem. 

Possible workaround is to test for force-response-1.0 earlier and
downgrade r->proto_num to 1000.  I think I prefer this over adding another
variable force-request-1.0.  In either case I'm not sure where to do the
change... because it has to wait until header parsing has run, and that
occurs after some protocol specific manipulations.

Remind me again why header_parse runs after all the various _walk() 

Additionally, our nokeepalive code does not work for a 1.1 request.  The
patch below fixes this (and re-orders a test putting the cheap one first).

But on the good side, someone inside microsoft has contacted me. 


Index: http_protocol.c
RCS file: /export/home/cvs/apache/src/http_protocol.c,v
retrieving revision 1.139
diff -u -r1.139 http_protocol.c
--- http_protocol.c	1997/07/15 22:36:51	1.139
+++ http_protocol.c	1997/07/17 01:25:49
@@ -282,8 +282,8 @@
      *   and the response generator has not already indicated close;
      *   and the client did not request non-persistence (Connection: close);
      *   and    the client is requesting an HTTP/1.0-style keep-alive
-     *          and we haven't been configured to ignore the buggy twit,
      *       or the client claims to be HTTP/1.1 compliant (perhaps a proxy);
+     *   and we haven't been configured to ignore the buggy twit,
      *   THEN we can be persistent, which requires more headers be output.
      * Note that the condition evaluation order is extremely important.
@@ -304,9 +304,9 @@
         !status_drops_connection(r->status) &&
         !wimpy &&
         !find_token(r->pool, conn, "close") &&
-        (((ka_sent = find_token(r->pool, conn, "keep-alive")) &&
-          !table_get(r->subprocess_env, "nokeepalive")) ||
-         (r->proto_num >= 1001))
+        ((r->proto_num >= 1001)
+         || (ka_sent = find_token(r->pool, conn, "keep-alive")))
+	&& !table_get(r->subprocess_env, "nokeepalive")
        ) {
 	char header[256];
 	int left = r->server->keep_alive_max - r->connection->keepalives;

View raw message