]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
Input filtering rewrite. Consolidate how we handle HTTP input parsing by
authorJustin Erenkrantz <jerenkrantz@apache.org>
Sat, 29 Sep 2001 08:17:11 +0000 (08:17 +0000)
committerJustin Erenkrantz <jerenkrantz@apache.org>
Sat, 29 Sep 2001 08:17:11 +0000 (08:17 +0000)
commit08eb7609da3a8fa149113a1068cb5b3d676614a5
treedc8996449b8b9ba588cc21288d33c1360fcc5332
parentd7a730adcf2d7d6dfb9ed93862494317e9ccba9e
Input filtering rewrite.  Consolidate how we handle HTTP input parsing by
rearranging and rethinking some things.  The net result is that the HTTP
filter is now a request filter and is now only responsible for HTTP things.
The core input filter is now responsible for handling all of the dirty work.

Highlights:
- Removes the dechunk filter and merges it with ap_http_filter (aka HTTP_IN).
  The dechunk filter was incorrectly handling certain cases (trailers).
- Moves ap_http_filter from a connection filter to a request filter
  to support the consolidation above (it needs header info).
- Change support code to allow the http_filter to be a
  request filter (how the request is setup initially).
- Move most of the logic from HTTP_IN to CORE_IN (core_input_filter).
  HTTP_IN is now only concerned about HTTP things.  The core filter
  is now responsible for returning data.  It is impossible to
  consolidate dechunk and http without this because HTTP_IN previously
  buffered data.  As Greg has suggested, it may make sense to write
  some brigade functions that handle input (getline).  It should be
  fairly trivial to add these.  Some of the calls in ap_http_filter
  could be switched as well.

This is the original patch as submitted to dev@httpd on Monday, Sep.
24th.  Additional comments and some minor tweaks done after that
submission are coming up next.  This should allow people who reviewed
the original patch to see what has changed and review them piecemeal.

This test passes all current tests in httpd-test.  Please perform
chicken sacrifices to verify that this hasn't blown up your favorite
input.

Reviewed by: Greg Stein, Ryan Bloom, and Cliff Woolley (buckets)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91189 13f79535-47bb-0310-9956-ffa450edef68
modules/http/http_core.c
modules/http/http_protocol.c
server/core.c
server/protocol.c