Received: by taz.hyperreal.com (8.8.4/V2.0) id XAA01234; Sat, 8 Feb 1997 23:06:21 -0800 (PST) Received: from plato.alameda-coe.k12.ca.us by taz.hyperreal.com (8.8.4/V2.0) with SMTP id XAA01219; Sat, 8 Feb 1997 23:06:17 -0800 (PST) Received: from pappilloma.wwebsvs.com by plato.alameda-coe.k12.ca.us with smtp (Smail3.1.29.1 #5) id m0vtTDm-000OZKC; Sat, 8 Feb 97 22:58 PST Received: from ace.nueva.pvt.k12.ca.us by pappilloma.wwebsvs.com (SMI-8.6/SMI-SVR4) id WAA00793; Sat, 8 Feb 1997 22:04:04 -0800 Received: from localhost by ace.nueva.pvt.k12.ca.us with SMTP (1.37.109.20/15.5+ECS 3.3+HPL1.1) id AA237601966; Sat, 8 Feb 1997 23:06:06 -0800 Date: Sat, 8 Feb 1997 23:06:05 -0800 (PST) From: Alexei Kosut To: new-httpd@hyperreal.com Subject: Re: [PATCH] why not keepalives on errors? In-Reply-To: Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@hyperreal.com On Sat, 8 Feb 1997, Marc Slemko wrote: > Does the below patch miss something? 'twould be nice to do persistent > connections (even though they will only work for 1.1 clients...) for > things like redirects, etc. In short, yes (I explained all this in a message directed at Dean a week or so ago...): 1. POST/PUT requests. If the error comes before the module has read in the request entity, and the server keeps the connection open, it will be treated as the next request (since it'll be in the input stream), and chaos will ensue. Unfortunately, the server has no clue whether or not the error was sent before or after the entity was read (mod_cgi returns errors both before and after, for example). This needs, at the least, a lot of thought and modification of the *_client_block() functions, as well as new code in the error handling routines. 2. set_keepalive() is designed for a normal request. So it checks r->headers_out for Content-length. Note, though, that there could be a content length set, but it would be wrong, since we are now dealing with an error message. set_keepalive() will then try and use non-chunked keepalive, and will send the headers such. Oops. Note that this will happen with a core-handled file if read permissions are not correct (default_handler() tries to set content length before it tries to open the file). 3. Three words: custom error messages. Honestly, I don't know how this patch would interact with those. For that matter, I don't know how keepalives work with this *now*. I should probably look into it. There are at least those three issues. There maybe more. -- ________________________________________________________________________ Alexei Kosut The Apache HTTP Server URL: http://www.nueva.pvt.k12.ca.us/~akosut/ http://www.apache.org/