From: Brian Pane Date: Sun, 22 Jan 2006 03:35:46 +0000 (+0000) Subject: Buffer partial lines within ap_core_input_filter() when doing X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97993a7eb8a11e00d5c2996417b09e9a65f65167;p=thirdparty%2Fapache%2Fhttpd.git Buffer partial lines within ap_core_input_filter() when doing AP_MODE_GETLINE reads on a nonblocking connection git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/async-read-dev@371175 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/core_filters.c b/server/core_filters.c index 0c06b90c419..2e18d6f082b 100644 --- a/server/core_filters.c +++ b/server/core_filters.c @@ -153,12 +153,8 @@ int ap_core_input_filter(ap_filter_t *f, apr_bucket_brigade *b, if (mode == AP_MODE_GETLINE) { /* we are reading a single LF line, e.g. the HTTP headers */ rv = apr_brigade_split_line(b, ctx->b, block, HUGE_STRING_LEN); - /* We should treat EAGAIN here the same as we do for EOF (brigade is - * empty). We do this by returning whatever we have read. This may - * or may not be bogus, but is consistent (for now) with EOF logic. - */ if (APR_STATUS_IS_EAGAIN(rv)) { - rv = APR_SUCCESS; + APR_BRIGADE_PREPEND(ctx->b, b); } return rv; }