Author: rhuijben
Date: Mon Oct 12 14:52:59 2015
New Revision: 1708134
URL: http://svn.apache.org/viewvc?rev=1708134&view=rev
Log:
Provide a default bucket implementation of peek() for buckets that currently
just use a NULL function. It is safer to return that there is nothing to peek
than to segfault.
* serf-dev/dev/buckets/buckets.c
(serf_default_peek): New function.
* serf-dev/dev/buckets/bwtp_buckets.c
(bwtp_incoming_peek,
serf_bucket_type_bwtp_incoming_frame): Document TODO in a safer way.
* serf-dev/dev/buckets/dechunk_buckets.c
(serf_dechunk_peek,
serf_bucket_type_dechunk): Document TODO in a safer way.
* serf-dev/dev/buckets/deflate_buckets.c
(serf_deflate_peek,
serf_bucket_type_deflate): Document TODO in a safer way.
* serf-dev/dev/buckets/response_buckets.c
(serf_response_peek,
serf_bucket_type_response): Document TODO in a safer way.
* serf-dev/dev/serf_bucket_util.h
(serf_default_peek): New function.
Modified:
serf/trunk/buckets/buckets.c
serf/trunk/buckets/bwtp_buckets.c
serf/trunk/buckets/dechunk_buckets.c
serf/trunk/buckets/deflate_buckets.c
serf/trunk/buckets/response_buckets.c
serf/trunk/serf_bucket_util.h
Modified: serf/trunk/buckets/buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/buckets.c?rev=1708134&r1=1708133&r2=1708134&view=diff
==============================================================================
--- serf/trunk/buckets/buckets.c (original)
+++ serf/trunk/buckets/buckets.c Mon Oct 12 14:52:59 2015
@@ -112,6 +112,17 @@ serf_bucket_t *serf_default_read_bucket(
return NULL;
}
+apr_status_t serf_default_peek(
+ serf_bucket_t *bucket,
+ const char **data,
+ apr_size_t *len)
+{
+ /* State: no data available */
+ *data = "";
+ *len = 0;
+ return APR_SUCCESS;
+}
+
void serf_default_destroy(serf_bucket_t *bucket)
{
Modified: serf/trunk/buckets/bwtp_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/bwtp_buckets.c?rev=1708134&r1=1708133&r2=1708134&view=diff
==============================================================================
--- serf/trunk/buckets/bwtp_buckets.c (original)
+++ serf/trunk/buckets/bwtp_buckets.c Mon Oct 12 14:52:59 2015
@@ -586,9 +586,6 @@ static apr_status_t bwtp_incoming_readli
return serf_bucket_readline(ctx->body, acceptable, found, data, len);
}
-/* ### need to implement */
-#define bwtp_incoming_peek NULL
-
const serf_bucket_type_t serf_bucket_type_bwtp_incoming_frame = {
"BWTP-INCOMING",
bwtp_incoming_read,
@@ -596,6 +593,6 @@ const serf_bucket_type_t serf_bucket_typ
serf_default_read_iovec,
serf_default_read_for_sendfile,
serf_default_read_bucket,
- bwtp_incoming_peek,
+ serf_default_peek /* ### TODO */,
bwtp_incoming_destroy_and_data,
};
Modified: serf/trunk/buckets/dechunk_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/dechunk_buckets.c?rev=1708134&r1=1708133&r2=1708134&view=diff
==============================================================================
--- serf/trunk/buckets/dechunk_buckets.c (original)
+++ serf/trunk/buckets/dechunk_buckets.c Mon Oct 12 14:52:59 2015
@@ -200,7 +200,6 @@ static apr_status_t serf_dechunk_set_con
/* ### need to implement */
#define serf_dechunk_readline NULL
-#define serf_dechunk_peek NULL
const serf_bucket_type_t serf_bucket_type_dechunk = {
"DECHUNK",
@@ -209,7 +208,7 @@ const serf_bucket_type_t serf_bucket_typ
serf_default_read_iovec,
serf_default_read_for_sendfile,
serf_buckets_are_v2,
- serf_dechunk_peek /* ### TODO */,
+ serf_default_peek /* ### TODO */,
serf_dechunk_destroy_and_data,
serf_default_read_bucket,
serf_default_get_remaining,
Modified: serf/trunk/buckets/deflate_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/deflate_buckets.c?rev=1708134&r1=1708133&r2=1708134&view=diff
==============================================================================
--- serf/trunk/buckets/deflate_buckets.c (original)
+++ serf/trunk/buckets/deflate_buckets.c Mon Oct 12 14:52:59 2015
@@ -446,7 +446,6 @@ static apr_status_t serf_deflate_set_con
/* ### need to implement */
#define serf_deflate_readline NULL
-#define serf_deflate_peek NULL
const serf_bucket_type_t serf_bucket_type_deflate = {
"DEFLATE",
@@ -455,7 +454,7 @@ const serf_bucket_type_t serf_bucket_typ
serf_default_read_iovec,
serf_default_read_for_sendfile,
serf_buckets_are_v2,
- serf_deflate_peek /* ### TODO */,
+ serf_default_peek /* ### TODO */,
serf_deflate_destroy_and_data,
serf_default_read_bucket,
serf_default_get_remaining,
Modified: serf/trunk/buckets/response_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/response_buckets.c?rev=1708134&r1=1708133&r2=1708134&view=diff
==============================================================================
--- serf/trunk/buckets/response_buckets.c (original)
+++ serf/trunk/buckets/response_buckets.c Mon Oct 12 14:52:59 2015
@@ -525,9 +525,6 @@ static apr_status_t serf_response_set_co
return serf_bucket_set_config(ctx->stream, config);
}
-/* ### need to implement */
-#define serf_response_peek NULL
-
void serf__bucket_response_set_error_on_eof(serf_bucket_t *bucket,
apr_status_t error)
{
@@ -542,7 +539,7 @@ const serf_bucket_type_t serf_bucket_typ
serf_default_read_iovec,
serf_default_read_for_sendfile,
serf_buckets_are_v2,
- serf_response_peek /* ### TODO */,
+ serf_default_peek /* ### TODO */,
serf_response_destroy_and_data,
serf_default_read_bucket,
serf_default_get_remaining,
Modified: serf/trunk/serf_bucket_util.h
URL:
http://svn.apache.org/viewvc/serf/trunk/serf_bucket_util.h?rev=1708134&r1=1708133&r2=1708134&view=diff
==============================================================================
--- serf/trunk/serf_bucket_util.h (original)
+++ serf/trunk/serf_bucket_util.h Mon Oct 12 14:52:59 2015
@@ -85,6 +85,18 @@ serf_bucket_t *serf_default_read_bucket(
const serf_bucket_type_t *type);
/**
+ * Default implementation of the @see peek functionality.
+ *
+ * This function will always state that there is no data available.
+ *
+ * @since New in 1.4.
+ */
+apr_status_t serf_default_peek(
+ serf_bucket_t *bucket,
+ const char **data,
+ apr_size_t *len);
+
+/**
* Default implementation of the @see destroy functionality.
*
* This function will return the @a bucket to its allcoator.