You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Bill Stoddard <bi...@wstoddard.com> on 2003/03/03 20:28:40 UTC
[PATCH] ap_http_filter rewrite round 2
This incorporates some (but not all) of Justin's suggestions. This
patch will handle request bodies (both c-l and chunk encoded). Not
tested with pipelined requests but I think it will work.
Recap... ap_http_filter is now responsible for parsing the http protocol
header fields. This patch gets its performance improvement by replacing
multiple calls to ap_get_brigade(AP_MODE_GETLINE) made in
read_request_line and ap_get_mime_headers with a single call to
ap_get_brigade(AP_MODE_READBYTES) made from ap_http_filter (aka
HTTP_IN). Because ap_get_brigade(AP_MODE_READBYTES) can fetch request
body and/or a pipelined request bytes, the filter needs to be able to
setaside bytes received on ap_get_brigade that do not pertain to this
request (this is exactly what the core_input_filter does).
ap_http_filter uses a state driven algorithm to deliniate between
request headers, request bodies and pipelined requests.
Still to do:
- optionally refactor core_input_filter to account for ap_http_filter's
new function
- cleanup the error paths (code uses two different ways to handle
sending error responses to the client, which is goofy)
- handle the con_rec->r fooness a bit more cleanly
- get this patch working for proxy requests
- properly handle trailers (the code is commented out now)
Bill