You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by yl...@apache.org on 2019/10/20 12:31:45 UTC
svn commit: r1868652 - /httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
Author: ylavic
Date: Sun Oct 20 12:31:45 2019
New Revision: 1868652
URL: http://svn.apache.org/viewvc?rev=1868652&view=rev
Log:
mod_proxy_http: revert r1868625.
The HTTP_IN filter handles "100 Continue" the first time it's called only,
and in spool_reqbody_cl() we have already tried to prefetch the body, so
it's too late.
Modified:
httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_http.c?rev=1868652&r1=1868651&r2=1868652&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_http.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_http.c Sun Oct 20 12:31:45 2019
@@ -431,18 +431,18 @@ static int spool_reqbody_cl(proxy_http_r
apr_file_t *tmpfile = NULL;
apr_off_t limit;
- /*
- * Tell the HTTP_IN filter that it should send a "100 continue" if the
- * client expects one, before blocking on the body, otherwise we'd wait
- * for each other.
+ /* Send "100 Continue" now if the client expects one, before
+ * blocking on the body, otherwise we'd wait for each other.
*/
if (req->expecting_100) {
- /* From https://tools.ietf.org/html/rfc7231#section-5.1.1
- * A server MAY omit sending a 100 (Continue) response if it has
- * already received some or all of the message body for the
- * corresponding request, or if [snip].
- */
- r->expecting_100 = APR_BRIGADE_EMPTY(input_brigade);
+ int saved_status = r->status;
+
+ r->expecting_100 = 1;
+ r->status = HTTP_CONTINUE;
+ ap_send_interim_response(r, 0);
+ AP_DEBUG_ASSERT(!r->expecting_100);
+
+ r->status = saved_status;
req->expecting_100 = 0;
}