Commit be3a35e2 authored by Brian Pane's avatar Brian Pane
Browse files

Refactoring of ap_read_request() to store partial request state

in the request rec.  The point of this is to allow asynchronous
MPMs do do nonblocking reads of requests.  (Backported from the
async-read-dev branch)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@360461 13f79535-47bb-0310-9956-ffa450edef68
parent 10e8efca
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@
Changes with Apache 2.3.0
  [Remove entries to the current 2.0 and 2.2 section below, when backported]
  *) Refactored ap_read_request() to provide a foundation for
     nonblocking reads of requests.  [Brian Pane]
  *) If a connection is aborted while waiting for a chunked line, flag the
     connection as errored out.  [Justin Erenkrantz]
+3 −1
Original line number Diff line number Diff line
@@ -109,12 +109,14 @@
 * 20051005.0 (2.1.8-dev) NET_TIME filter eliminated
 * 20051005.0 (2.3.0-dev) Bump MODULE_MAGIC_COOKIE to "AP24"!
 * 20051115.0 (2.3.0-dev) Added use_canonical_phys_port to core_dir_config
 * 20051231.0 (2.3.0-dev) Added num_blank_lines, pending_header_line, and
 *                        pending_header_size to request_rec
 */

#define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */

#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20051115
#define MODULE_MAGIC_NUMBER_MAJOR 20051231
#endif
#define MODULE_MAGIC_NUMBER_MINOR 0                     /* 0...n */

+10 −0
Original line number Diff line number Diff line
@@ -967,6 +967,16 @@ struct request_rec {
    /** A flag to determine if the eos bucket has been sent yet */
    int eos_sent;

    /** Number of leading blank lines encountered before request header */
    int num_blank_lines;

    /** A buffered header line, used to support header folding while
     *  reading the request */
    char *pending_header_line;

    /** If nonzero, the number of bytes allocated to hold pending_header_line */
    apr_size_t pending_header_size;

/* Things placed at the end of the record to avoid breaking binary
 * compatibility.  It would be nice to remember to reorder the entire
 * record to improve 64bit alignment the next time we need to break
+280 −267

File changed.

Preview size limit exceeded, changes collapsed.