dgaudet 98/01/27 00:37:53
Modified: . Tag: APACHE_1_2_X STATUS src Tag: APACHE_1_2_X CHANGES http_request.c Log: Roy's patch fixed the extra-data-after-post problem for the user. PR: 1399 Submitted by: Roy Fielding Reviewed by: Martin Kraemer, Dean Gaudet Revision Changes Path No revision No revision 1.1.2.25 +1 -0 apache-1.2/STATUS Index: STATUS =================================================================== RCS file: /export/home/cvs/apache-1.2/STATUS,v retrieving revision 1.1.2.24 retrieving revision 1.1.2.25 diff -u -r1.1.2.24 -r1.1.2.25 --- STATUS 1998/01/24 14:59:57 1.1.2.24 +++ STATUS 1998/01/27 08:37:47 1.1.2.25 @@ -27,6 +27,7 @@ * PR#1604: table_{set,unset} didn't deal correctly with multiple keys * PR#1599: "Digest" auth token should be tested case-insensitive * PR#1650 (et alia): "const" in mod_imap causing pointer mismatches + * PR#1399: eat data after failed POST Available: No revision No revision 1.286.2.75 +4 -0 apache-1.2/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache-1.2/src/CHANGES,v retrieving revision 1.286.2.74 retrieving revision 1.286.2.75 diff -u -r1.286.2.74 -r1.286.2.75 --- CHANGES 1998/01/20 01:09:38 1.286.2.74 +++ CHANGES 1998/01/27 08:37:50 1.286.2.75 @@ -1,5 +1,9 @@ Changes with Apache 1.2.6 + *) When an error occurs during a POST, or other operation with a + request body, the body has to be read from the net before allowing + a keepalive session to continue. [Roy Fielding] PR#1399 + *) When an error occurs in fcntl() locking suggest the user look up the docs for LockFile. [Dean Gaudet] 1.50.2.9 +10 -0 apache-1.2/src/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apache-1.2/src/http_request.c,v retrieving revision 1.50.2.8 retrieving revision 1.50.2.9 diff -u -r1.50.2.8 -r1.50.2.9 --- http_request.c 1997/11/22 22:24:52 1.50.2.8 +++ http_request.c 1998/01/27 08:37:52 1.50.2.9 @@ -811,6 +811,16 @@ r->status = type; + /* + * If we want to keep the connection, be sure that the request body + * (if any) has been read. + */ + if ((r->status != HTTP_NOT_MODIFIED) && (r->status != HTTP_NO_CONTENT) + && !status_drops_connection(r->status) + && r->connection && (r->connection->keepalive != -1)) { + (void) discard_request_body(r); + } + /* Two types of custom redirects --- plain text, and URLs. * Plain text has a leading '"', so the URL code, here, is triggered * on its absence