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;
}
}