read from pipe/socket buckets again if it got APR_EAGAIN from them
due to its use of APR_BRIGADE_FOREACH.
Submitted by: the gang on IRC
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95946
13f79535-47bb-0310-9956-
ffa450edef68
split = NULL;
flush = 0;
- APR_BRIGADE_FOREACH(e, b) {
+ e = APR_BRIGADE_FIRST(b);
+ while (e != APR_BRIGADE_SENTINEL(b)) {
const char *ignored;
apr_size_t len;
len = 0;
if (APR_BUCKET_IS_EOS(e)) {
eos = 1;
+ break;
}
else if (APR_BUCKET_IS_FLUSH(e)) {
if (partial_send_okay) {
flush = 1;
break;
}
+ continue;
}
else if (rv != APR_EOF) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
ctx->curr_len += len;
r->bytes_sent += len;
+ e = APR_BUCKET_NEXT(e);
}
if (split) {