
|
If you were logged in you would be able to see more operations.
|
|
|
| Resolution Date: |
02/Apr/06 06:47 PM
|
|
In HTTP/1.1 any method may include a request body, whereas in HTTP/1.0 only POST and PUT were allowed to. To avoid any potential problems if a handler were trying to emulate in part the default Apache handler for requests, in would be appropriate for a handler to ensure that any request body is discarded. Apache provides a function specifically for this purpose which is called ap_discard_request_body(). For completeness this function should be available in the request object API as req.discard_request_body().
|
|
Description
|
In HTTP/1.1 any method may include a request body, whereas in HTTP/1.0 only POST and PUT were allowed to. To avoid any potential problems if a handler were trying to emulate in part the default Apache handler for requests, in would be appropriate for a handler to ensure that any request body is discarded. Apache provides a function specifically for this purpose which is called ap_discard_request_body(). For completeness this function should be available in the request object API as req.discard_request_body(). |
Show » |
made changes - 02/Apr/06 05:29 PM
| Field |
Original Value |
New Value |
|
Status
|
Open
[ 1
]
|
In Progress
[ 3
]
|
made changes - 02/Apr/06 06:47 PM
|
Fix Version/s
|
|
3.3
[ 12310101
]
|
|
Resolution
|
|
Fixed
[ 1
]
|
|
Status
|
In Progress
[ 3
]
|
Resolved
[ 5
]
|
made changes - 11/Apr/07 11:39 AM
|
Status
|
Resolved
[ 5
]
|
Closed
[ 6
]
|
|
/**
* In HTTP/1.1, any method can have a body. However, most GET handlers
* wouldn't know what to do with a request body if they received one.
* This helper routine tests for and reads any message body in the request,
* simply discarding whatever it receives. We need to do this because
* failing to read the request body would cause it to be interpreted
* as the next request on a persistent connection.
* @param r The current request
* @return error status if request is malformed, OK otherwise
*/
AP_DECLARE(int) ap_discard_request_body(request_rec *r);
Note that by rights, mod_python.publisher and mod_python.psp should both call this method for GET requests. As pointed out in documentation above, if it didn't and GET request contained content then not discarding it can stuff up a following request if a persistent connection is used and multiple requests are pipelined.