Commit dba3cd62 authored by Brian Pane's avatar Brian Pane
Browse files

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
parent 637b93a0
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -153,12 +153,8 @@ int ap_core_input_filter(ap_filter_t *f, apr_bucket_brigade *b,
    if (mode == AP_MODE_GETLINE) {
    if (mode == AP_MODE_GETLINE) {
        /* we are reading a single LF line, e.g. the HTTP headers */
        /* we are reading a single LF line, e.g. the HTTP headers */
        rv = apr_brigade_split_line(b, ctx->b, block, HUGE_STRING_LEN);
        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)) {
        if (APR_STATUS_IS_EAGAIN(rv)) {
            rv = APR_SUCCESS;
            APR_BRIGADE_PREPEND(ctx->b, b);
        }
        }
        return rv;
        return rv;
    }
    }