Author: rhuijben Date: Wed Nov 25 13:46:44 2015 New Revision: 1716407 URL: http://svn.apache.org/viewvc?rev=1716407&view=rev Log: * buckets/prefix_buckets.c (read_prefix): Return empty read error on empty read. (serf_prefix_read, serf_prefix_read_iovec, serf_prefix_peek): And handle that as return success here.
Modified: serf/trunk/buckets/prefix_buckets.c Modified: serf/trunk/buckets/prefix_buckets.c URL: http://svn.apache.org/viewvc/serf/trunk/buckets/prefix_buckets.c?rev=1716407&r1=1716406&r2=1716407&view=diff ============================================================================== --- serf/trunk/buckets/prefix_buckets.c (original) +++ serf/trunk/buckets/prefix_buckets.c Wed Nov 25 13:46:44 2015 @@ -65,13 +65,11 @@ static apr_status_t read_prefix(serf_buc if (!ctx->read_len) { /* Perhaps we can handle this without copying any data? */ - do - { - status = serf_bucket_read(ctx->stream, ctx->prefix_len, &data, - &len); - } while (!status && !len); + status = serf_bucket_read(ctx->stream, ctx->prefix_len, &data, &len); - if (SERF_BUCKET_READ_ERROR(status)) + if (!status && !len) + return SERF_ERROR_EMPTY_READ; + else if (SERF_BUCKET_READ_ERROR(status)) return status; if (APR_STATUS_IS_EOF(status) || (len == ctx->prefix_len)) { @@ -111,6 +109,8 @@ static apr_status_t read_prefix(serf_buc if (SERF_BUCKET_READ_ERROR(status)) return status; + else if (!status && !len) + return SERF_ERROR_EMPTY_READ; memcpy(ctx->buffer + ctx->read_len, data, len); ctx->read_len += len; @@ -149,7 +149,8 @@ static apr_status_t serf_prefix_read(ser if (status) { *len = 0; - return status; + return (status == SERF_ERROR_EMPTY_READ) ? APR_SUCCESS + : status; } } @@ -169,7 +170,8 @@ static apr_status_t serf_prefix_read_iov if (status) { *vecs_used = 0; - return status; + return (status == SERF_ERROR_EMPTY_READ) ? APR_SUCCESS + : status; } } @@ -188,7 +190,8 @@ static apr_status_t serf_prefix_peek(ser if (status) { *len = 0; - return status; + return (status == SERF_ERROR_EMPTY_READ) ? APR_SUCCESS + : status; } }