httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Orton <jeo...@york.ac.uk>
Subject 100-continue support
Date Sat, 29 May 1999 15:02:29 GMT

I couldn't get Expect: 100-continue support to work properly in 1.3.6:

If I send:

PUT /foobar HTTP/1.1
Host: localhost
Content-Length: 5
Expect: 100-continue

then Apache waits for the body, then gives a 405. HTTP/1.1 draft-06
says it shouldn't wait, just send the 405 straight away.

I poked around a bit, but don't really understand how
ap_discard_request_body is supposed to work in this case. Changing it
to do:
 
   if( r->expecting_100 )
      return OK;

before anything else makes it works properly, I think (patch attached).

Regards,

joe

-- 
Joe Orton
jeo101@york.ac.uk ... joe@orton.demon.co.uk
http://www.orton.demon.co.uk/

--- http_protocol.c~	Wed Mar 10 17:42:42 1999
+++ http_protocol.c	Sat May 29 14:49:09 1999
@@ -1858,13 +1858,13 @@
 {
     int rv;
 
+    /* If the client is waiting for 100 Continue, don't send it,
+     * and the body is never sent, hence is discarded. */
+    if (r->expecting_100)
+        return OK;
+
     if ((rv = ap_setup_client_block(r, REQUEST_CHUNKED_PASS)))
         return rv;
-
-    /* If we are discarding the request body, then we must already know
-     * the final status code, therefore disable the sending of 100 continue.
-     */
-    r->expecting_100 = 0;
 
     if (ap_should_client_block(r)) {
         char dumpbuf[HUGE_STRING_LEN];

Mime
View raw message