Author: rhuijben
Date: Wed Nov 11 12:16:12 2015
New Revision: 1713822
URL: http://svn.apache.org/viewvc?rev=1713822&view=rev
Log:
* test/mock_sock_buckets.c
(serf_bucket_type_mock_socket): Properly implement bucket v2.
Modified:
serf/trunk/buckets/response_body_buckets.c
serf/trunk/test/mock_sock_buckets.c
Modified: serf/trunk/buckets/response_body_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/response_body_buckets.c?rev=1713822&r1=1713821&r2=1713822&view=diff
==============================================================================
--- serf/trunk/buckets/response_body_buckets.c (original)
+++ serf/trunk/buckets/response_body_buckets.c Wed Nov 11 12:16:12 2015
@@ -127,8 +127,10 @@ static apr_status_t serf_response_body_r
return status;
}
-static apr_status_t serf_response_body_readline(serf_bucket_t *bucket,
- int acceptable, int *found,
+static apr_status_t serf_response_body_readline2(serf_bucket_t *bucket,
+ int acceptable,
+ apr_size_t requested,
+ int *found,
const char **data,
apr_size_t *len)
{
@@ -141,7 +143,11 @@ static apr_status_t serf_response_body_r
return APR_EOF;
}
- status = serf_bucket_readline(ctx->stream, acceptable, found, data, len);
+ if (requested > ctx->remaining)
+ requested = (apr_size_t)ctx->remaining;
+
+ status = serf_bucket_readline2(ctx->stream, acceptable, requested,
+ found, data, len);
if (!SERF_BUCKET_READ_ERROR(status)) {
ctx->remaining -= *len;
@@ -157,13 +163,32 @@ static apr_status_t serf_response_body_r
return status;
}
+static apr_status_t serf_response_body_readline(serf_bucket_t *bucket,
+ int acceptable,
+ int *found,
+ const char **data,
+ apr_size_t *len)
+{
+ return serf_response_body_readline2(bucket, acceptable,
+ SERF_READ_ALL_AVAIL,
+ found, data, len);
+}
+
+
static apr_status_t serf_response_body_peek(serf_bucket_t *bucket,
const char **data,
apr_size_t *len)
{
body_context_t *ctx = bucket->data;
+ apr_status_t status;
+
+ status = serf_bucket_peek(ctx->stream, data, len);
- return serf_bucket_peek(ctx->stream, data, len);
+ if (!SERF_BUCKET_READ_ERROR(status) && *len > ctx->remaining) {
+ *len = (apr_size_t)ctx->remaining;
+ }
+
+ return status;
}
static void serf_response_body_destroy(serf_bucket_t *bucket)
@@ -202,7 +227,7 @@ const serf_bucket_type_t serf_bucket_typ
serf_response_body_peek,
serf_response_body_destroy,
serf_default_read_bucket,
- serf_default_readline2,
+ serf_response_body_readline2,
serf_response_body_get_remaining,
serf_response_body_set_config,
};
Modified: serf/trunk/test/mock_sock_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/test/mock_sock_buckets.c?rev=1713822&r1=1713821&r2=1713822&view=diff
==============================================================================
--- serf/trunk/test/mock_sock_buckets.c (original)
+++ serf/trunk/test/mock_sock_buckets.c Wed Nov 11 12:16:12 2015
@@ -81,7 +81,12 @@ static void serf_mock_sock_destroy_and_d
serf_bucket_destroy(ctx->stream);
+#ifndef SERF_DEBUG_BUCKET_USE
serf_default_destroy_and_data(bucket);
+#else
+ serf_bucket_mem_free(bucket->allocator, bucket->data);
+ serf_bucket_mem_free(bucket->allocator, bucket);
+#endif
}
static apr_status_t serf_mock_sock_set_config(serf_bucket_t *bucket,
@@ -104,6 +109,7 @@ const serf_bucket_type_t serf_bucket_typ
serf_mock_sock_peek,
serf_mock_sock_destroy_and_data,
serf_default_read_bucket,
+ serf_default_readline2,
serf_default_get_remaining,
serf_mock_sock_set_config,
};