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
parent
bed39e1a
Please register or sign in to comment