Received: (from majordom@localhost) by hyperreal.org (8.8.5/8.8.5) id BAA00344; Thu, 31 Jul 1997 01:19:58 -0700 (PDT) Received: (from rse@localhost) by hyperreal.org (8.8.5/8.8.5) id BAA00319 for apache-cvs; Thu, 31 Jul 1997 01:19:55 -0700 (PDT) Message-Id: <199707310819.BAA00319@hyperreal.org> Subject: cvs commit: apache/src CHANGES http_protocol.c http_request.c mod_browser.c To: apache-cvs@hyperreal.org Date: Thu, 31 Jul 1997 01:19:54 -0700 (PDT) From: rse@apache.org (Ralf S. Engelschall) Organization: The Apache Group X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Sender: apache-cvs-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org rse 97/07/31 01:19:53 Modified: src Tag: APACHE_1_2_X CHANGES http_protocol.c http_request.c mod_browser.c Log: "force-response-1.0" now only applies to requests which are HTTP/1.0 to begin with. "nokeepalive" now works for HTTP/1.1 clients. Added "downgrade-1.0" which causes Apache to pretend it received a 1.0. Additionally mod_browser now triggers during translate_name to workaround a deficiency in the header_parse phase. PR: 875 Submitted by: Dean Gaudet Reviewed by: Roy Fielding, Ralf S. Engelschall, Jim Jagielski Revision Changes Path No revision No revision 1.286.2.34 +7 -0 apache/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.33 retrieving revision 1.286.2.34 diff -u -r1.286.2.33 -r1.286.2.34 --- CHANGES 1997/07/30 15:25:27 1.286.2.33 +++ CHANGES 1997/07/31 08:19:47 1.286.2.34 @@ -1,5 +1,12 @@ Changes with Apache 1.2.2 + *) "force-response-1.0" now only applies to requests which are HTTP/1.0 to + begin with. "nokeepalive" now works for HTTP/1.1 clients. Added + "downgrade-1.0" which causes Apache to pretend it received a 1.0. + Additionally mod_browser now triggers during translate_name to workaround + a deficiency in the header_parse phase. + [Dean Gaudet] PR#875 + *) get_client_block() returns wrong length if policy is REQUEST_CHUNKED_DECHUNK. [Kenichi Hori ] PR#815 1.126.2.5 +9 -6 apache/src/http_protocol.c Index: http_protocol.c =================================================================== RCS file: /export/home/cvs/apache/src/http_protocol.c,v retrieving revision 1.126.2.4 retrieving revision 1.126.2.5 diff -u -r1.126.2.4 -r1.126.2.5 --- http_protocol.c 1997/07/30 15:25:29 1.126.2.4 +++ http_protocol.c 1997/07/31 08:19:48 1.126.2.5 @@ -281,8 +281,9 @@ * and the response status does not require a close; * and the response generator has not already indicated close; * and the client did not request non-persistence (Connection: close); + * and we haven't been configured to ignore the buggy twit + * or they're a buggy twit coming through a HTTP/1.1 proxy * 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); * THEN we can be persistent, which requires more headers be output. * @@ -304,9 +305,10 @@ !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)) + (!table_get(r->subprocess_env, "nokeepalive") || + table_get(r->headers_in, "Via")) && + ((ka_sent = find_token(r->pool, conn, "keep-alive")) || + (r->proto_num >= 1001)) ) { char header[256]; int left = r->server->keep_alive_max - r->connection->keepalives; @@ -1041,8 +1043,9 @@ if (!r->status_line) r->status_line = status_lines[index_of_response(r->status)]; - - if (table_get(r->subprocess_env,"force-response-1.0")) + + if (r->proto_num == 1000 + && table_get(r->subprocess_env,"force-response-1.0")) protocol = "HTTP/1.0"; else protocol = SERVER_PROTOCOL; 1.50.2.5 +4 -0 apache/src/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apache/src/http_request.c,v retrieving revision 1.50.2.4 retrieving revision 1.50.2.5 diff -u -r1.50.2.4 -r1.50.2.5 --- http_request.c 1997/07/19 20:17:41 1.50.2.4 +++ http_request.c 1997/07/31 08:19:49 1.50.2.5 @@ -937,6 +937,10 @@ return; } + if (r->proto_num > 1000 && table_get (r->subprocess_env, "downgrade-1.0")) { + r->proto_num = 1000; + } + /* NB: directory_walk() clears the per_dir_config, so we don't inherit from location_walk() above */ 1.9.2.1 +4 -4 apache/src/mod_browser.c Index: mod_browser.c =================================================================== RCS file: /export/home/cvs/apache/src/mod_browser.c,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -u -r1.9 -r1.9.2.1 --- mod_browser.c 1997/04/24 23:35:21 1.9 +++ mod_browser.c 1997/07/31 08:19:50 1.9.2.1 @@ -139,7 +139,7 @@ { NULL }, }; -int parse_headers_browser_module(request_rec *r) +static int browser_match(request_rec *r) { server_rec *s = r->server; browser_server_config_rec *sconf = get_module_config (s->module_config, @@ -166,7 +166,7 @@ } } - return OK; + return DECLINED; } module browser_module = { @@ -178,12 +178,12 @@ merge_browser_config, /* merge server configs */ browser_module_cmds, /* command table */ NULL, /* handlers */ - NULL, /* filename translation */ + browser_match, /* filename translation */ NULL, /* check_user_id */ NULL, /* check auth */ NULL, /* check access */ NULL, /* type_checker */ NULL, /* fixups */ NULL, /* logger */ - parse_headers_browser_module /* header parser */ + NULL /* header parser */ };