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
-*- 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.
int i;
r = sizeof(buffer);
+read_more:
#ifdef USE_SSL
if (c->ssl) {
status = SSL_read(c->ssl, buffer, r);
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 */