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