Commit 739a7a47 authored by Yann Ylavic's avatar Yann Ylavic
Browse files

ab: Keep reading nonblocking to exhaust TCP or SSL buffers when previous

read was incomplete (the SSL case can cause the next poll() to timeout
since data are buffered already).  PR 61301



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1811649 13f79535-47bb-0310-9956-ffa450edef68
parent 5bbe97ac
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
                                                         -*- coding: utf-8 -*-
Changes with Apache 2.5.0

  *) ab: Keep reading nonblocking to exhaust TCP or SSL buffers when previous
     read was incomplete (the SSL case can cause the next poll() to timeout
     since data are buffered already).  PR 61301 [Luca Toscano, Yann Ylavic]

  *) mod_md: v0.9.9, fix for applying challenge type based on available ports. [Stefan Eissing]

  *) mod_proxy_uwsgi: New UWSGI mod_proxy (sub)module contributed by unbit.com.
+5 −0
Original line number Diff line number Diff line
@@ -1506,6 +1506,7 @@ static void read_connection(struct connection * c)
    int i;

    r = sizeof(buffer);
read_more:
#ifdef USE_SSL
    if (c->ssl) {
        status = SSL_read(c->ssl, buffer, r);
@@ -1712,6 +1713,10 @@ static void read_connection(struct connection * c)
        c->bread += r;
        totalbread += r;
    }
    if (r == sizeof(buffer) && c->bread < c->length) {
        /* read was full, try more immediately (nonblocking already) */
        goto read_more;
    }

    if (c->keepalive && (c->bread >= c->length)) {
        /* finished a keep-alive connection */