Author: rhuijben
Date: Tue Oct 20 16:48:50 2015
New Revision: 1709643
URL: http://svn.apache.org/viewvc?rev=1709643&view=rev
Log:
Fix some minor issues in the current hpack code.
* buckets/hpack_buckets.c
(serf_bucket_hpack_getc): New function.
(serf_bucket_hpack_do): New function.
(hpack_int): Order declarations before expressions.
Modified:
serf/trunk/buckets/hpack_buckets.c
serf/trunk/serf_bucket_types.h
Modified: serf/trunk/buckets/hpack_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/hpack_buckets.c?rev=1709643&r1=1709642&r2=1709643&view=diff
==============================================================================
--- serf/trunk/buckets/hpack_buckets.c (original)
+++ serf/trunk/buckets/hpack_buckets.c Tue Oct 20 16:48:50 2015
@@ -389,12 +389,46 @@ void serf_bucket_hpack_setx(serf_bucket_
ctx->first = ctx->last = hi;
}
+const char *serf_bucket_hpack_getc(serf_bucket_t *hpack_bucket,
+ const char *key)
+{
+ serf_hpack_context_t *ctx = hpack_bucket->data;
+ serf_hpack_item_t *hi;
+ apr_size_t key_len = strlen(key);
+
+ for (hi = ctx->first; hi; hi = hi->next)
+ {
+ if (key_len == hi->key_len
+ && !strncasecmp(key, hi->key, key_len))
+ {
+ return hi->value;
+ }
+ }
+
+ return NULL;
+}
+
+void serf_bucket_hpack_do(serf_bucket_t *hpack_bucket,
+ serf_bucket_hpack_do_callback_fn_t func,
+ void *baton)
+{
+ serf_hpack_context_t *ctx = hpack_bucket->data;
+ serf_hpack_item_t *hi;
+
+ for (hi = ctx->first; hi; hi = hi->next)
+ {
+ if (func(baton, hi->key, hi->key_len, hi->value, hi->value_len))
+ break;
+ }
+}
+
static void hpack_int(unsigned char flags, int bits, apr_uint64_t value, char
to[10], apr_size_t *used)
{
unsigned char max_direct;
- flags = flags & ~((1 << bits) - 1);
apr_size_t u;
+ flags = flags & ~((1 << bits) - 1);
+
max_direct = (unsigned char)(((apr_uint16_t)1 << bits) - 1);
if (value < max_direct)
Modified: serf/trunk/serf_bucket_types.h
URL:
http://svn.apache.org/viewvc/serf/trunk/serf_bucket_types.h?rev=1709643&r1=1709642&r2=1709643&view=diff
==============================================================================
--- serf/trunk/serf_bucket_types.h (original)
+++ serf/trunk/serf_bucket_types.h Tue Oct 20 16:48:50 2015
@@ -832,9 +832,9 @@ void serf_bucket_hpack_setx(serf_bucket_
apr_size_t value_size,
int value_copy);
-const char *serf_bucket_hpack_get(serf_bucket_t *hpack_bucket,
- const char *key,
- apr_size_t hey_len);
+const char *serf_bucket_hpack_getc(serf_bucket_t *hpack_bucket,
+ const char *key,
+ apr_size_t key_len);
/**
* @param baton opaque baton as passed to @see serf_bucket_hpack_do