]> granicus.if.org Git - apache/commitdiff
check_pipeline: use AP_MODE_SPECULATIVE to check for data in the input filters
authorGreg Ames <gregames@apache.org>
Mon, 30 Apr 2007 18:16:06 +0000 (18:16 +0000)
committerGreg Ames <gregames@apache.org>
Mon, 30 Apr 2007 18:16:06 +0000 (18:16 +0000)
to accomodate mod_ssl's input filter.  AP_MODE_EATCRLF is essentially a no-op
in that filter.

this fixes missing imbedded graphics etc when using the Event MPM with mod_ssl
with HTTP pipelining enabled in the browser.  the pipelined requests after the
first were never read from mod_ssl's input filter.  it might reduce unneeded
flushes with other MPMs.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@533820 13f79535-47bb-0310-9956-ffa450edef68

modules/http/http_request.c

index 640df9152ee7c4bfb3f95a4eaeb0731b1be05641..0238d34119cebd442a9e63b0549040e32b2c95f3 100644 (file)
@@ -193,11 +193,10 @@ AP_DECLARE(void) ap_die(int type, request_rec *r)
 
 static void check_pipeline(conn_rec *c)
 {
-    /* ### is zero correct? that means "read one line" */
     if (c->keepalive != AP_CONN_CLOSE) {
         apr_bucket_brigade *bb = apr_brigade_create(c->pool, c->bucket_alloc);
-        if (ap_get_brigade(c->input_filters, bb, AP_MODE_EATCRLF,
-                       APR_NONBLOCK_READ, 0) != APR_SUCCESS) {
+        if (ap_get_brigade(c->input_filters, bb, AP_MODE_SPECULATIVE,
+                       APR_NONBLOCK_READ, 1) != APR_SUCCESS) {
             c->data_in_input_filters = 0;  /* we got APR_EOF or an error */
         }
         else {