nghttp2_hd: Rename local as deflate

This commit is contained in:
Tatsuhiro Tsujikawa 2013-10-29 00:42:08 +09:00
parent 1c17f7f286
commit 6c99ff12c9
7 changed files with 75 additions and 75 deletions

View File

@ -58,10 +58,10 @@ json_t* dump_header_table(nghttp2_hd_context *context)
json_object_set_new(obj, "maxSize", json_object_set_new(obj, "maxSize",
json_integer(context->hd_table_bufsize_max)); json_integer(context->hd_table_bufsize_max));
if(context->role == NGHTTP2_HD_ROLE_DEFLATE) { if(context->role == NGHTTP2_HD_ROLE_DEFLATE) {
json_object_set_new(obj, "localSize", json_object_set_new(obj, "deflateSize",
json_integer(context->local_hd_table_bufsize)); json_integer(context->deflate_hd_table_bufsize));
json_object_set_new(obj, "maxLocalSize", json_object_set_new(obj, "maxDeflateSize",
json_integer(context->local_hd_table_bufsize_max)); json_integer(context->deflate_hd_table_bufsize_max));
} }
return obj; return obj;
} }

View File

@ -16,7 +16,7 @@
typedef struct { typedef struct {
nghttp2_hd_side side; nghttp2_hd_side side;
size_t table_size; size_t table_size;
size_t local_table_size; size_t deflate_table_size;
int http1text; int http1text;
int dump_header_table; int dump_header_table;
} deflate_config; } deflate_config;
@ -271,7 +271,7 @@ static void print_help(void)
" specification, this value is denoted by\n" " specification, this value is denoted by\n"
" SETTINGS_HEADER_TABLE_SIZE.\n" " SETTINGS_HEADER_TABLE_SIZE.\n"
" Default: 4096\n" " Default: 4096\n"
" -S, --local-table-size=<N>\n" " -S, --deflate-table-size=<N>\n"
" Use first N bytes of dynamic header table\n" " Use first N bytes of dynamic header table\n"
" buffer.\n" " buffer.\n"
" Default: 4096\n" " Default: 4096\n"
@ -283,7 +283,7 @@ static struct option long_options[] = {
{"response", no_argument, NULL, 'r'}, {"response", no_argument, NULL, 'r'},
{"http1text", no_argument, NULL, 't'}, {"http1text", no_argument, NULL, 't'},
{"table-size", required_argument, NULL, 's'}, {"table-size", required_argument, NULL, 's'},
{"local-table-size", required_argument, NULL, 'S'}, {"deflate-table-size", required_argument, NULL, 'S'},
{"dump-header-table", no_argument, NULL, 'd'}, {"dump-header-table", no_argument, NULL, 'd'},
{NULL, 0, NULL, 0 } {NULL, 0, NULL, 0 }
}; };
@ -295,7 +295,7 @@ int main(int argc, char **argv)
config.side = NGHTTP2_HD_SIDE_REQUEST; config.side = NGHTTP2_HD_SIDE_REQUEST;
config.table_size = NGHTTP2_HD_DEFAULT_MAX_BUFFER_SIZE; config.table_size = NGHTTP2_HD_DEFAULT_MAX_BUFFER_SIZE;
config.local_table_size = NGHTTP2_HD_DEFAULT_LOCAL_MAX_BUFFER_SIZE; config.deflate_table_size = NGHTTP2_HD_DEFAULT_MAX_DEFLATE_BUFFER_SIZE;
config.http1text = 0; config.http1text = 0;
config.dump_header_table = 0; config.dump_header_table = 0;
while(1) { while(1) {
@ -325,8 +325,8 @@ int main(int argc, char **argv)
} }
break; break;
case 'S': case 'S':
/* --local-table-size */ /* --deflate-table-size */
config.local_table_size = strtoul(optarg, &end, 10); config.deflate_table_size = strtoul(optarg, &end, 10);
if(errno == ERANGE || *end != '\0') { if(errno == ERANGE || *end != '\0') {
fprintf(stderr, "-S: Bad option value\n"); fprintf(stderr, "-S: Bad option value\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -342,7 +342,7 @@ int main(int argc, char **argv)
break; break;
} }
} }
nghttp2_hd_deflate_init2(&deflater, config.side, config.local_table_size); nghttp2_hd_deflate_init2(&deflater, config.side, config.deflate_table_size);
nghttp2_hd_change_table_size(&deflater, config.table_size); nghttp2_hd_change_table_size(&deflater, config.table_size);
if(config.http1text) { if(config.http1text) {
perform_from_http1text(&deflater); perform_from_http1text(&deflater);

View File

@ -31,7 +31,7 @@
#include "nghttp2_helper.h" #include "nghttp2_helper.h"
/* Make scalar initialization form of nghttp2_nv */ /* Make scalar initialization form of nghttp2_nv */
#define MAKE_NV(N, V) \ #define MAKE_NV(N, V) \
{ { (uint8_t*)N, (uint8_t*)V, sizeof(N) - 1, sizeof(V) - 1 }, \ { { (uint8_t*)N, (uint8_t*)V, sizeof(N) - 1, sizeof(V) - 1 }, \
1, NGHTTP2_HD_FLAG_NONE } 1, NGHTTP2_HD_FLAG_NONE }
@ -245,7 +245,7 @@ static void nghttp2_hd_ringbuf_pop_back(nghttp2_hd_ringbuf *ringbuf)
static int nghttp2_hd_context_init(nghttp2_hd_context *context, static int nghttp2_hd_context_init(nghttp2_hd_context *context,
nghttp2_hd_role role, nghttp2_hd_role role,
nghttp2_hd_side side, nghttp2_hd_side side,
size_t local_hd_table_bufsize_max) size_t deflate_hd_table_bufsize_max)
{ {
int rv; int rv;
context->role = role; context->role = role;
@ -281,9 +281,9 @@ static int nghttp2_hd_context_init(nghttp2_hd_context *context,
context->buf_track = NULL; context->buf_track = NULL;
context->buf_track_capacity = 0; context->buf_track_capacity = 0;
} }
context->local_hd_table_bufsize_max = local_hd_table_bufsize_max; context->deflate_hd_table_bufsize_max = deflate_hd_table_bufsize_max;
context->local_hd_table_bufsize = 0; context->deflate_hd_table_bufsize = 0;
context->local_hd_tablelen = 0; context->deflate_hd_tablelen = 0;
context->emit_setlen = 0; context->emit_setlen = 0;
context->buf_tracklen = 0; context->buf_tracklen = 0;
context->hd_table_bufsize = 0; context->hd_table_bufsize = 0;
@ -298,15 +298,15 @@ static int nghttp2_hd_context_init(nghttp2_hd_context *context,
int nghttp2_hd_deflate_init(nghttp2_hd_context *deflater, nghttp2_hd_side side) int nghttp2_hd_deflate_init(nghttp2_hd_context *deflater, nghttp2_hd_side side)
{ {
return nghttp2_hd_context_init(deflater, NGHTTP2_HD_ROLE_DEFLATE, side, return nghttp2_hd_context_init(deflater, NGHTTP2_HD_ROLE_DEFLATE, side,
NGHTTP2_HD_DEFAULT_LOCAL_MAX_BUFFER_SIZE); NGHTTP2_HD_DEFAULT_MAX_DEFLATE_BUFFER_SIZE);
} }
int nghttp2_hd_deflate_init2(nghttp2_hd_context *deflater, int nghttp2_hd_deflate_init2(nghttp2_hd_context *deflater,
nghttp2_hd_side side, nghttp2_hd_side side,
size_t local_hd_table_bufsize_max) size_t deflate_hd_table_bufsize_max)
{ {
return nghttp2_hd_context_init(deflater, NGHTTP2_HD_ROLE_DEFLATE, side, return nghttp2_hd_context_init(deflater, NGHTTP2_HD_ROLE_DEFLATE, side,
local_hd_table_bufsize_max); deflate_hd_table_bufsize_max);
} }
int nghttp2_hd_inflate_init(nghttp2_hd_context *inflater, nghttp2_hd_side side) int nghttp2_hd_inflate_init(nghttp2_hd_context *inflater, nghttp2_hd_side side)
@ -706,10 +706,10 @@ static nghttp2_hd_entry* add_hd_table_incremental(nghttp2_hd_context *context,
nghttp2_hd_entry* ent = nghttp2_hd_ringbuf_get(&context->hd_table, index); nghttp2_hd_entry* ent = nghttp2_hd_ringbuf_get(&context->hd_table, index);
context->hd_table_bufsize -= entry_room(ent->nv.namelen, ent->nv.valuelen); context->hd_table_bufsize -= entry_room(ent->nv.namelen, ent->nv.valuelen);
if(context->role == NGHTTP2_HD_ROLE_DEFLATE) { if(context->role == NGHTTP2_HD_ROLE_DEFLATE) {
if(context->hd_table_bufsize < context->local_hd_table_bufsize) { if(context->hd_table_bufsize < context->deflate_hd_table_bufsize) {
context->local_hd_table_bufsize -= entry_room(ent->nv.namelen, context->deflate_hd_table_bufsize -= entry_room(ent->nv.namelen,
ent->nv.valuelen); ent->nv.valuelen);
--context->local_hd_tablelen; --context->deflate_hd_tablelen;
} }
if(ent->flags & NGHTTP2_HD_FLAG_IMPLICIT_EMIT) { if(ent->flags & NGHTTP2_HD_FLAG_IMPLICIT_EMIT) {
/* Emit common header just before it slips away from the /* Emit common header just before it slips away from the
@ -728,15 +728,15 @@ static nghttp2_hd_entry* add_hd_table_incremental(nghttp2_hd_context *context,
} }
} }
if(context->role == NGHTTP2_HD_ROLE_DEFLATE) { if(context->role == NGHTTP2_HD_ROLE_DEFLATE) {
while(context->local_hd_table_bufsize + room > while(context->deflate_hd_table_bufsize + room >
context->local_hd_table_bufsize_max context->deflate_hd_table_bufsize_max
&& context->local_hd_tablelen > 0) { && context->deflate_hd_tablelen > 0) {
size_t index = context->local_hd_tablelen - 1; size_t index = context->deflate_hd_tablelen - 1;
nghttp2_hd_entry *ent = nghttp2_hd_entry *ent =
nghttp2_hd_ringbuf_get(&context->hd_table, index); nghttp2_hd_ringbuf_get(&context->hd_table, index);
context->local_hd_table_bufsize -= entry_room(ent->nv.namelen, context->deflate_hd_table_bufsize -= entry_room(ent->nv.namelen,
ent->nv.valuelen); ent->nv.valuelen);
--context->local_hd_tablelen; --context->deflate_hd_tablelen;
if(ent->flags & NGHTTP2_HD_FLAG_IMPLICIT_EMIT) { if(ent->flags & NGHTTP2_HD_FLAG_IMPLICIT_EMIT) {
/* Just like a normal eviction, implicit header must be /* Just like a normal eviction, implicit header must be
emitted twice. */ emitted twice. */
@ -775,7 +775,7 @@ static nghttp2_hd_entry* add_hd_table_incremental(nghttp2_hd_context *context,
} }
if(context->role == NGHTTP2_HD_ROLE_DEFLATE && if(context->role == NGHTTP2_HD_ROLE_DEFLATE &&
room > context->local_hd_table_bufsize_max) { room > context->deflate_hd_table_bufsize_max) {
uint8_t flags = entry_flags & uint8_t flags = entry_flags &
~(NGHTTP2_HD_FLAG_NAME_ALLOC | NGHTTP2_HD_FLAG_VALUE_ALLOC | ~(NGHTTP2_HD_FLAG_NAME_ALLOC | NGHTTP2_HD_FLAG_VALUE_ALLOC |
NGHTTP2_HD_FLAG_NAME_GIFT | NGHTTP2_HD_FLAG_VALUE_GIFT); NGHTTP2_HD_FLAG_NAME_GIFT | NGHTTP2_HD_FLAG_VALUE_GIFT);
@ -814,9 +814,9 @@ static nghttp2_hd_entry* add_hd_table_incremental(nghttp2_hd_context *context,
new_ent->flags |= NGHTTP2_HD_FLAG_REFSET; new_ent->flags |= NGHTTP2_HD_FLAG_REFSET;
nghttp2_hd_ringbuf_push_front(&context->hd_table, new_ent); nghttp2_hd_ringbuf_push_front(&context->hd_table, new_ent);
if(context->role == NGHTTP2_HD_ROLE_DEFLATE && if(context->role == NGHTTP2_HD_ROLE_DEFLATE &&
room <= context->local_hd_table_bufsize_max) { room <= context->deflate_hd_table_bufsize_max) {
context->local_hd_table_bufsize += room; context->deflate_hd_table_bufsize += room;
++context->local_hd_tablelen; ++context->deflate_hd_tablelen;
} }
} }
return new_ent; return new_ent;
@ -826,7 +826,7 @@ static ssize_t find_in_hd_table(nghttp2_hd_context *context, nghttp2_nv *nv)
{ {
size_t i; size_t i;
size_t max = context->role == NGHTTP2_HD_ROLE_DEFLATE ? size_t max = context->role == NGHTTP2_HD_ROLE_DEFLATE ?
context->local_hd_tablelen : context->hd_table.len; context->deflate_hd_tablelen : context->hd_table.len;
for(i = 0; i < max; ++i) { for(i = 0; i < max; ++i) {
nghttp2_hd_entry *ent = nghttp2_hd_ringbuf_get(&context->hd_table, i); nghttp2_hd_entry *ent = nghttp2_hd_ringbuf_get(&context->hd_table, i);
if(nghttp2_nv_equal(&ent->nv, nv)) { if(nghttp2_nv_equal(&ent->nv, nv)) {
@ -847,7 +847,7 @@ static ssize_t find_name_in_hd_table(nghttp2_hd_context *context,
{ {
size_t i; size_t i;
size_t max = context->role == NGHTTP2_HD_ROLE_DEFLATE ? size_t max = context->role == NGHTTP2_HD_ROLE_DEFLATE ?
context->local_hd_tablelen : context->hd_table.len; context->deflate_hd_tablelen : context->hd_table.len;
for(i = 0; i < max; ++i) { for(i = 0; i < max; ++i) {
nghttp2_hd_entry *ent = nghttp2_hd_ringbuf_get(&context->hd_table, i); nghttp2_hd_entry *ent = nghttp2_hd_ringbuf_get(&context->hd_table, i);
if(ent->nv.namelen == nv->namelen && if(ent->nv.namelen == nv->namelen &&
@ -881,10 +881,10 @@ int nghttp2_hd_change_table_size(nghttp2_hd_context *context,
nghttp2_hd_entry* ent = nghttp2_hd_ringbuf_get(&context->hd_table, index); nghttp2_hd_entry* ent = nghttp2_hd_ringbuf_get(&context->hd_table, index);
context->hd_table_bufsize -= entry_room(ent->nv.namelen, ent->nv.valuelen); context->hd_table_bufsize -= entry_room(ent->nv.namelen, ent->nv.valuelen);
if(context->role == NGHTTP2_HD_ROLE_DEFLATE) { if(context->role == NGHTTP2_HD_ROLE_DEFLATE) {
if(context->hd_table_bufsize < context->local_hd_table_bufsize) { if(context->hd_table_bufsize < context->deflate_hd_table_bufsize) {
context->local_hd_table_bufsize -= entry_room(ent->nv.namelen, context->deflate_hd_table_bufsize -= entry_room(ent->nv.namelen,
ent->nv.valuelen); ent->nv.valuelen);
--context->local_hd_tablelen; --context->deflate_hd_tablelen;
} }
} }
nghttp2_hd_ringbuf_pop_back(&context->hd_table); nghttp2_hd_ringbuf_pop_back(&context->hd_table);
@ -940,7 +940,7 @@ static int deflate_nv(nghttp2_hd_context *deflater,
new_ent = NULL; new_ent = NULL;
} else if(new_ent->nv.name != NULL) { } else if(new_ent->nv.name != NULL) {
/* new_ent->ref > 0 and nv.name is not NULL means that new_ent is /* new_ent->ref > 0 and nv.name is not NULL means that new_ent is
in the reference set and in local_hd_table_bufsize */ in the reference set and in deflate_hd_table_bufsize */
new_ent->flags |= NGHTTP2_HD_FLAG_EMIT; new_ent->flags |= NGHTTP2_HD_FLAG_EMIT;
} }
rv = emit_indexed_block(buf_ptr, buflen_ptr, offset_ptr, index); rv = emit_indexed_block(buf_ptr, buflen_ptr, offset_ptr, index);
@ -1015,7 +1015,7 @@ static int deflate_nv(nghttp2_hd_context *deflater,
free(new_ent); free(new_ent);
} else if(new_ent->nv.name != NULL) { } else if(new_ent->nv.name != NULL) {
/* new_ent->ref > 0 and nv.name is not NULL means that new_ent is /* new_ent->ref > 0 and nv.name is not NULL means that new_ent is
in the reference set and in local_hd_table_bufsize */ in the reference set and in deflate_hd_table_bufsize */
new_ent->flags |= NGHTTP2_HD_FLAG_EMIT; new_ent->flags |= NGHTTP2_HD_FLAG_EMIT;
} }
incidx = 1; incidx = 1;

View File

@ -41,7 +41,7 @@
/* Default size of maximum table buffer size for encoder. Even if /* Default size of maximum table buffer size for encoder. Even if
remote decoder notifies larger buffer size for its decoding, remote decoder notifies larger buffer size for its decoding,
encoder only uses the memory up to this value. */ encoder only uses the memory up to this value. */
#define NGHTTP2_HD_DEFAULT_LOCAL_MAX_BUFFER_SIZE (1 << 12) #define NGHTTP2_HD_DEFAULT_MAX_DEFLATE_BUFFER_SIZE (1 << 12)
typedef enum { typedef enum {
NGHTTP2_HD_SIDE_REQUEST = 0, NGHTTP2_HD_SIDE_REQUEST = 0,
@ -96,18 +96,18 @@ typedef struct {
size_t hd_table_bufsize_max; size_t hd_table_bufsize_max;
/* The current effective header table size for encoding. This value /* The current effective header table size for encoding. This value
is meaningful iff this context is initialized as is meaningful iff this context is initialized as
encoder. |local_hd_table_bufsize| <= |hd_table_bufsize| must be encoder. |deflate_hd_table_bufsize| <= |hd_table_bufsize| must be
hold. */ hold. */
size_t local_hd_table_bufsize; size_t deflate_hd_table_bufsize;
/* The maximum effective header table for encoding. Although header /* The maximum effective header table for encoding. Although header
table size is bounded by |hd_table_bufsize_max|, the encoder can table size is bounded by |hd_table_bufsize_max|, the encoder can
use smaller buffer by not retaining the header name/values beyond use smaller buffer by not retaining the header name/values beyond
the |local_hd_table_bufsize_max| and not referencing those the |deflate_hd_table_bufsize_max| and not referencing those
entries. This value is meaningful iff this context is initialized entries. This value is meaningful iff this context is initialized
as encoder. */ as encoder. */
size_t local_hd_table_bufsize_max; size_t deflate_hd_table_bufsize_max;
/* The number of effective entry in |hd_table|. */ /* The number of effective entry in |hd_table|. */
size_t local_hd_tablelen; size_t deflate_hd_tablelen;
/* Holding emitted entry in deflating header block to retain /* Holding emitted entry in deflating header block to retain
reference count. */ reference count. */
nghttp2_hd_entry **emit_set; nghttp2_hd_entry **emit_set;
@ -159,7 +159,7 @@ void nghttp2_hd_entry_free(nghttp2_hd_entry *ent);
* Initializes |deflater| for deflating name/values pairs. * Initializes |deflater| for deflating name/values pairs.
* *
* The encoder only uses up to * The encoder only uses up to
* NGHTTP2_HD_DEFAULT_LOCAL_MAX_BUFFER_SIZE bytes for header table * NGHTTP2_HD_DEFAULT_MAX_DEFLATE_BUFFER_SIZE bytes for header table
* even if the larger value is specified later in * even if the larger value is specified later in
* nghttp2_hd_change_table_size(). * nghttp2_hd_change_table_size().
* *
@ -175,8 +175,8 @@ int nghttp2_hd_deflate_init(nghttp2_hd_context *deflater,
/* /*
* Initializes |deflater| for deflating name/values pairs. * Initializes |deflater| for deflating name/values pairs.
* *
* The encoder only uses up to |local_hd_table_bufsize_max| bytes for * The encoder only uses up to |deflate_hd_table_bufsize_max| bytes
* header table even if the larger value is specified later in * for header table even if the larger value is specified later in
* nghttp2_hd_change_table_size(). * nghttp2_hd_change_table_size().
* *
* This function returns 0 if it succeeds, or one of the following * This function returns 0 if it succeeds, or one of the following
@ -187,7 +187,7 @@ int nghttp2_hd_deflate_init(nghttp2_hd_context *deflater,
*/ */
int nghttp2_hd_deflate_init2(nghttp2_hd_context *deflater, int nghttp2_hd_deflate_init2(nghttp2_hd_context *deflater,
nghttp2_hd_side side, nghttp2_hd_side side,
size_t local_hd_table_bufsize_max); size_t deflate_hd_table_bufsize_max);
/* /*
* Initializes |inflater| for inflating name/values pairs. * Initializes |inflater| for inflating name/values pairs.

View File

@ -229,8 +229,8 @@ int main(int argc, char* argv[])
test_nghttp2_hd_deflate_same_indexed_repr) || test_nghttp2_hd_deflate_same_indexed_repr) ||
!CU_add_test(pSuite, "hd_deflate_common_header_eviction", !CU_add_test(pSuite, "hd_deflate_common_header_eviction",
test_nghttp2_hd_deflate_common_header_eviction) || test_nghttp2_hd_deflate_common_header_eviction) ||
!CU_add_test(pSuite, "hd_deflate_local_buffer", !CU_add_test(pSuite, "hd_deflate_deflate_buffer",
test_nghttp2_hd_deflate_local_buffer) || test_nghttp2_hd_deflate_deflate_buffer) ||
!CU_add_test(pSuite, "hd_inflate_indname_inc", !CU_add_test(pSuite, "hd_inflate_indname_inc",
test_nghttp2_hd_inflate_indname_inc) || test_nghttp2_hd_inflate_indname_inc) ||
!CU_add_test(pSuite, "hd_inflate_indname_inc_eviction", !CU_add_test(pSuite, "hd_inflate_indname_inc_eviction",

View File

@ -247,7 +247,7 @@ void test_nghttp2_hd_deflate_common_header_eviction(void)
nghttp2_hd_deflate_free(&deflater); nghttp2_hd_deflate_free(&deflater);
} }
void test_nghttp2_hd_deflate_local_buffer(void) void test_nghttp2_hd_deflate_deflate_buffer(void)
{ {
nghttp2_hd_context deflater, inflater; nghttp2_hd_context deflater, inflater;
size_t i; size_t i;
@ -275,7 +275,7 @@ void test_nghttp2_hd_deflate_local_buffer(void)
nv3.namelen = nv3.valuelen = sizeof(val); nv3.namelen = nv3.valuelen = sizeof(val);
/* Check the case where entry from static table is inserted to /* Check the case where entry from static table is inserted to
dynamic header table. And it is out of local header table dynamic header table. And it is out of deflate header table
size. */ size. */
nghttp2_hd_deflate_init2(&deflater, NGHTTP2_HD_SIDE_REQUEST, 32); nghttp2_hd_deflate_init2(&deflater, NGHTTP2_HD_SIDE_REQUEST, 32);
nghttp2_hd_inflate_init(&inflater, NGHTTP2_HD_SIDE_REQUEST); nghttp2_hd_inflate_init(&inflater, NGHTTP2_HD_SIDE_REQUEST);
@ -290,8 +290,8 @@ void test_nghttp2_hd_deflate_local_buffer(void)
* name/value of all entries must be NULL. * name/value of all entries must be NULL.
*/ */
CU_ASSERT(2 == deflater.hd_table.len); CU_ASSERT(2 == deflater.hd_table.len);
CU_ASSERT(0 == deflater.local_hd_tablelen); CU_ASSERT(0 == deflater.deflate_hd_tablelen);
CU_ASSERT(0 == deflater.local_hd_table_bufsize); CU_ASSERT(0 == deflater.deflate_hd_table_bufsize);
for(i = 0; i < 2; ++i) { for(i = 0; i < 2; ++i) {
ent = nghttp2_hd_table_get(&deflater, i); ent = nghttp2_hd_table_get(&deflater, i);
CU_ASSERT(ent->nv.name == NULL); CU_ASSERT(ent->nv.name == NULL);
@ -308,7 +308,7 @@ void test_nghttp2_hd_deflate_local_buffer(void)
nghttp2_hd_deflate_free(&deflater); nghttp2_hd_deflate_free(&deflater);
nghttp2_hd_inflate_free(&inflater); nghttp2_hd_inflate_free(&inflater);
/* 156 buffer size can hold all headers in local region */ /* 156 buffer size can hold all headers in deflate region */
nghttp2_hd_deflate_init2(&deflater, NGHTTP2_HD_SIDE_REQUEST, nghttp2_hd_deflate_init2(&deflater, NGHTTP2_HD_SIDE_REQUEST,
156); 156);
blocklen = nghttp2_hd_deflate_hd(&deflater, &buf, &buflen, 0, blocklen = nghttp2_hd_deflate_hd(&deflater, &buf, &buflen, 0,
@ -322,8 +322,8 @@ void test_nghttp2_hd_deflate_local_buffer(void)
* 3: k1, v1 * 3: k1, v1
*/ */
CU_ASSERT(4 == deflater.hd_table.len); CU_ASSERT(4 == deflater.hd_table.len);
CU_ASSERT(4 == deflater.local_hd_tablelen); CU_ASSERT(4 == deflater.deflate_hd_tablelen);
CU_ASSERT(156 == deflater.local_hd_table_bufsize); CU_ASSERT(156 == deflater.deflate_hd_table_bufsize);
for(i = 0; i < 4; ++i) { for(i = 0; i < 4; ++i) {
CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.name != NULL); CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.name != NULL);
CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.value != NULL); CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.value != NULL);
@ -331,15 +331,15 @@ void test_nghttp2_hd_deflate_local_buffer(void)
CU_ASSERT(0 == nghttp2_hd_change_table_size(&deflater, 156)); CU_ASSERT(0 == nghttp2_hd_change_table_size(&deflater, 156));
CU_ASSERT(4 == deflater.hd_table.len); CU_ASSERT(4 == deflater.hd_table.len);
CU_ASSERT(4 == deflater.local_hd_tablelen); CU_ASSERT(4 == deflater.deflate_hd_tablelen);
CU_ASSERT(156 == deflater.local_hd_table_bufsize); CU_ASSERT(156 == deflater.deflate_hd_table_bufsize);
blocklen = nghttp2_hd_deflate_hd(&deflater, &buf, &buflen, 0, &nv3, 1); blocklen = nghttp2_hd_deflate_hd(&deflater, &buf, &buflen, 0, &nv3, 1);
CU_ASSERT(blocklen > 0); CU_ASSERT(blocklen > 0);
/* Now header table should be empty */ /* Now header table should be empty */
CU_ASSERT(0 == deflater.hd_table.len); CU_ASSERT(0 == deflater.hd_table.len);
CU_ASSERT(0 == deflater.local_hd_tablelen); CU_ASSERT(0 == deflater.deflate_hd_tablelen);
CU_ASSERT(0 == deflater.local_hd_table_bufsize); CU_ASSERT(0 == deflater.deflate_hd_table_bufsize);
nghttp2_hd_deflate_free(&deflater); nghttp2_hd_deflate_free(&deflater);
@ -357,12 +357,12 @@ void test_nghttp2_hd_deflate_local_buffer(void)
* 2: k10, v10 (R) * 2: k10, v10 (R)
* 3: k1, v1 (-) <- name, value must be NULL and not in reference set * 3: k1, v1 (-) <- name, value must be NULL and not in reference set
* *
* But due to the local table size limit, name/value of index=3 must * But due to the deflate table size limit, name/value of index=3 must
* be NULL. * be NULL.
*/ */
CU_ASSERT(4 == deflater.hd_table.len); CU_ASSERT(4 == deflater.hd_table.len);
CU_ASSERT(3 == deflater.local_hd_tablelen); CU_ASSERT(3 == deflater.deflate_hd_tablelen);
CU_ASSERT(120 == deflater.local_hd_table_bufsize); CU_ASSERT(120 == deflater.deflate_hd_table_bufsize);
for(i = 0; i < 3; ++i) { for(i = 0; i < 3; ++i) {
CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.name != NULL); CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.name != NULL);
CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.value != NULL); CU_ASSERT(nghttp2_hd_table_get(&deflater, i)->nv.value != NULL);
@ -390,8 +390,8 @@ void test_nghttp2_hd_deflate_local_buffer(void)
* 4: k1, v1 (-) <- name, value must be NULL * 4: k1, v1 (-) <- name, value must be NULL
*/ */
CU_ASSERT(5 == deflater.hd_table.len); CU_ASSERT(5 == deflater.hd_table.len);
CU_ASSERT(3 == deflater.local_hd_tablelen); CU_ASSERT(3 == deflater.deflate_hd_tablelen);
CU_ASSERT(118 == deflater.local_hd_table_bufsize); CU_ASSERT(118 == deflater.deflate_hd_table_bufsize);
ent = nghttp2_hd_table_get(&deflater, 3); ent = nghttp2_hd_table_get(&deflater, 3);
CU_ASSERT(0 == (ent->flags & NGHTTP2_HD_FLAG_REFSET)); CU_ASSERT(0 == (ent->flags & NGHTTP2_HD_FLAG_REFSET));
ent = nghttp2_hd_table_get(&deflater, 3); ent = nghttp2_hd_table_get(&deflater, 3);
@ -419,8 +419,8 @@ void test_nghttp2_hd_deflate_local_buffer(void)
* name/value of all entries must be NULL. * name/value of all entries must be NULL.
*/ */
CU_ASSERT(6 == deflater.hd_table.len); CU_ASSERT(6 == deflater.hd_table.len);
CU_ASSERT(0 == deflater.local_hd_tablelen); CU_ASSERT(0 == deflater.deflate_hd_tablelen);
CU_ASSERT(0 == deflater.local_hd_table_bufsize); CU_ASSERT(0 == deflater.deflate_hd_table_bufsize);
for(i = 0; i < 6; ++i) { for(i = 0; i < 6; ++i) {
ent = nghttp2_hd_table_get(&deflater, i); ent = nghttp2_hd_table_get(&deflater, i);
CU_ASSERT(0 == (ent->flags & NGHTTP2_HD_FLAG_REFSET)); CU_ASSERT(0 == (ent->flags & NGHTTP2_HD_FLAG_REFSET));
@ -601,14 +601,14 @@ void test_nghttp2_hd_change_table_size(void)
CU_ASSERT(0 == nghttp2_hd_change_table_size(&deflater, 16384)); CU_ASSERT(0 == nghttp2_hd_change_table_size(&deflater, 16384));
CU_ASSERT(511 == deflater.hd_table.mask); CU_ASSERT(511 == deflater.hd_table.mask);
CU_ASSERT(2 == deflater.hd_table.len); CU_ASSERT(2 == deflater.hd_table.len);
CU_ASSERT(2 == deflater.local_hd_tablelen); CU_ASSERT(2 == deflater.deflate_hd_tablelen);
CU_ASSERT(5 == CU_ASSERT(5 ==
deflater.hd_table.buffer[deflater.hd_table.first]->nv.namelen); deflater.hd_table.buffer[deflater.hd_table.first]->nv.namelen);
CU_ASSERT(0 == nghttp2_hd_change_table_size(&deflater, 0)); CU_ASSERT(0 == nghttp2_hd_change_table_size(&deflater, 0));
CU_ASSERT(511 == deflater.hd_table.mask); CU_ASSERT(511 == deflater.hd_table.mask);
CU_ASSERT(0 == deflater.hd_table.len); CU_ASSERT(0 == deflater.hd_table.len);
CU_ASSERT(0 == deflater.local_hd_tablelen); CU_ASSERT(0 == deflater.deflate_hd_tablelen);
free(buf); free(buf);
nghttp2_hd_deflate_free(&deflater); nghttp2_hd_deflate_free(&deflater);

View File

@ -28,7 +28,7 @@
void test_nghttp2_hd_deflate(void); void test_nghttp2_hd_deflate(void);
void test_nghttp2_hd_deflate_same_indexed_repr(void); void test_nghttp2_hd_deflate_same_indexed_repr(void);
void test_nghttp2_hd_deflate_common_header_eviction(void); void test_nghttp2_hd_deflate_common_header_eviction(void);
void test_nghttp2_hd_deflate_local_buffer(void); void test_nghttp2_hd_deflate_deflate_buffer(void);
void test_nghttp2_hd_inflate_indname_inc(void); void test_nghttp2_hd_inflate_indname_inc(void);
void test_nghttp2_hd_inflate_indname_inc_eviction(void); void test_nghttp2_hd_inflate_indname_inc_eviction(void);
void test_nghttp2_hd_inflate_newname_inc(void); void test_nghttp2_hd_inflate_newname_inc(void);