Commit a3d38d48 authored by Jim Jagielski's avatar Jim Jagielski
Browse files

Merge r1759984, r1760018 from trunk:

mod_proxy_fcgi: handle the HTTP 412 use case

This is a follow up of http://svn.apache.org/r1752347;
ap_meet_conditions could return a 412 status that if not
handled causes subsequent bogus reads and wrong messages
logged (like AH01070). After a chat on dev@ the feedback
was to couple HTTP_NOT_MODIFIED with HTTP_PRECONDITION_FAILED,
but any other feedback is welcome.



Fix stupid mistake introduced in r1759984
Submitted by: elukey
Reviewed/backported by: jim


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1764075 13f79535-47bb-0310-9956-ffa450edef68
parent 99019a69
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -117,14 +117,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
  [ start all new proposals below, under PATCHES PROPOSED. ]

  *) mod_proxy_fcgi: read the whole FCGI response even for HTTP Precondition
     failed (412) responses to avoid subsequent bogus reads and
     confusing error messages logged.
     trunk patch: http://svn.apache.org/r1759984
                  http://svn.apache.org/r1760018
     2.4.x patch: trunk works
     +1 elukey, jim, ylavic

  *) mod_proxy: add log trace points to help users diagnose problems with
     ProxyPass[Match].
     trunk patch: http://svn.apache.org/r1762517
+8 −4
Original line number Diff line number Diff line
@@ -660,13 +660,17 @@ recv_again:
                                    *err = "passing headers brigade to output filters";
                                    break;
                                }
                                else if (status == HTTP_NOT_MODIFIED) {
                                    /* The 304 response MUST NOT contain
                                else if (status == HTTP_NOT_MODIFIED
                                         || status == HTTP_PRECONDITION_FAILED) {
                                    /* Special 'status' cases handled:
                                     * 1) HTTP 304 response MUST NOT contain
                                     *    a message-body, ignore it.
                                     * 2) HTTP 412 response.
                                     * The break is not added since there might
                                     * be more bytes to read from the FCGI
                                     * connection. Even if the message-body is
                                     * ignored we want to avoid subsequent
                                     * ignored (and the EOS bucket has already
                                     * been sent) we want to avoid subsequent
                                     * bogus reads. */
                                    ignore_body = 1;
                                }