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