Tatsuhiro Tsujikawa
170f2a144a
Fix warning with gcc
2015-09-23 18:26:02 +09:00
Tatsuhiro Tsujikawa
28fe3e7e89
More warning flags for --enable-werror
2015-09-23 16:49:45 +09:00
Tatsuhiro Tsujikawa
230b1f927f
Use hash table for dynamic table lookup
2015-09-19 21:29:40 +09:00
Tatsuhiro Tsujikawa
f3288092e8
Strictly check occurrence of dynamic table size update
...
RFC 7541 requires that dynamic table size update must occur at the
beginning of the first header block, and is signaled as SETTINGS
acknowledgement. This commit checks these conditions. If dynamic
table size update appears other than the beginning of the first header
block, it is treated as error. If SETTINGS ACK is received, and next
HEADERS header block does not have dynamic table size update, it is
treated as error.
2015-07-22 00:11:23 +09:00
Tatsuhiro Tsujikawa
f0379aa428
Fix invalid memory free
2015-05-22 23:36:34 +09:00
Tatsuhiro Tsujikawa
a8625e15f0
clang-format
2015-05-08 19:24:17 +09:00
Alexis La Goutte
1241c951d6
rv is only used in an assert.
...
The assert only evaluates to code if NDEBUG is undefined. Protect rv and its use accordingly
Issue reported by Joerg Mayer
https://code.wireshark.org/review/8260
2015-05-07 15:20:24 +02:00
Tatsuhiro Tsujikawa
fc17c0a618
Fix global-buffer-overflow
2015-05-07 19:37:43 +09:00
Tatsuhiro Tsujikawa
02468b1ca1
Allocate field name and value in the same buffer if indname to dynamic table
2015-04-26 18:43:24 +09:00
Tatsuhiro Tsujikawa
58b7f4a096
Fix inline error with travis gcc-4.8
2015-04-22 23:59:23 +09:00
Tatsuhiro Tsujikawa
91ad7e150e
Never indexing still can use header field name in dynamic table
2015-04-19 18:21:26 +09:00
Tatsuhiro Tsujikawa
a3fa257473
Fix compile error with Android NDK r10d + --enable-werror
2015-04-17 23:46:19 +09:00
Tatsuhiro Tsujikawa
93afbc7d2f
Rewrite static header table handling
...
We rewrite static header table handling in nghttp2_hd.c. We expand
nghttp2_token to include all static header table entries, and fully
use them in header compression and decompression. The lookup function
is now located in nghttp2_hd.c. We add new nghttp2_hd_inflate_hd2()
function to export token value for header name, then we pass it to
nghttp2_http_on_header function, so that we don't have to look up
token there. We carefully set enum value of token to static table
index, so looking up static table is now O(1), assuming we have token.
2015-04-15 23:58:56 +09:00
Tatsuhiro Tsujikawa
82e2c5bd22
Never index authorization and small cookie header field
...
nghttp2 library now use Literal Header Field never Indexed for
"authorization" header field and small "cookie" header field,
regardless of nghttp2_nv.flags.
2015-04-15 23:58:56 +09:00
Tatsuhiro Tsujikawa
d3d6c5e314
Fix bug that inflater->nvbufs is not reset
2015-03-24 21:54:05 +09:00
Tatsuhiro Tsujikawa
661fb2eb0e
NULL-terminate name and value in nghttp2_nv
...
Guaranteeing NULL-termination is very useful when name or value are
used with C functions which requires NULL-terminated string.
2015-03-23 23:25:57 +09:00
Tatsuhiro Tsujikawa
4430b06c71
Add parentheses around macro parameters
2015-02-22 17:43:14 +09:00
Tatsuhiro Tsujikawa
ce1bf11d4b
Fix memory leak
2014-12-18 21:02:44 +09:00
Tatsuhiro Tsujikawa
c0ffed7788
Support custom memory allocator
...
nghttp2_mem structure is introduced to hold custom memory allocator
functions and user supplied pointer. nghttp2_mem object can be passed
to nghttp2_session_client_new3(), nghttp2_session_server_new3(),
nghttp2_hd_deflate_new2() and nghttp2_hd_inflate_new2() to replace
standard malloc(), free(), calloc() and realloc(). nghttp2_mem
structure has user supplied pointer mem_user_data which can be used as
per session/object memory pool.
2014-12-08 00:55:55 +09:00
Tatsuhiro Tsujikawa
b1f807abd1
Reformat lines with clang-format-3.5
2014-11-27 23:56:30 +09:00
Alexis La Goutte
bac44d7ffb
Fix -Werror=unused-parameter using _U_ macro
2014-11-25 17:08:09 +01:00
Tatsuhiro Tsujikawa
4ee89e62fc
nghttp2_hd: Refactor a bit
2014-11-21 01:59:20 +09:00
Tatsuhiro Tsujikawa
7d282cd0bd
Code cleanup
2014-10-30 23:31:28 +09:00
Tatsuhiro Tsujikawa
b3463b20a3
Update doc
2014-10-27 21:24:41 +09:00
Tatsuhiro Tsujikawa
7e6019aef1
nghttp2_hd: Don't malloc if name/value is in first chunk without indexing
2014-09-30 23:01:58 +09:00
Tatsuhiro Tsujikawa
a82956d1d6
nghttp2_hd: Use binary search to lookup static table (again)
2014-09-29 21:58:37 +09:00
Tatsuhiro Tsujikawa
b48ceac56c
nghttp2_hd: Search dynamic table first
...
Since recently used headers are in dynamic header table, it is
advantageous to search dynamic table first, saving time to search
through static table.
2014-09-27 23:45:58 +09:00
Tatsuhiro Tsujikawa
6ccf06c6da
nghtp2_hd: Calculate hash values once
2014-08-06 22:00:12 +09:00
Tatsuhiro Tsujikawa
49e3fd6862
Add some header names which won't be indexed
2014-08-06 21:50:54 +09:00
Alexis La Goutte
ec93c9f55f
Fix some other shorten-64-to-32 casting error found by MSVC (64bits)
...
Thanks to Pascal
2014-08-04 09:04:49 +02:00
Alexis La Goutte
6c71889552
Fix some other shorten-64-to-32 casting error found by MSVC (64bits)
2014-08-03 16:09:30 +02:00
Tatsuhiro Tsujikawa
4bbb4172aa
Fix typo
2014-08-03 14:07:35 +09:00
Tatsuhiro Tsujikawa
3c603ec4ae
add_hd_table_incremental: Remove unused bufs parameter
2014-08-02 16:21:42 +09:00
Tatsuhiro Tsujikawa
d36bea8554
Add debug output for HPACK decoded integer
2014-08-02 10:40:25 +09:00
Tatsuhiro Tsujikawa
d8d14a3fc9
Code cleanup
2014-07-31 23:08:51 +09:00
Tatsuhiro Tsujikawa
c4be7d48a0
nghttp2_hd: Code cleanup
2014-07-31 23:05:53 +09:00
Tatsuhiro Tsujikawa
0752ce6701
nghttp2_hd_deflate_bound: Take into account possible 2nd context update
2014-07-31 23:05:53 +09:00
Tatsuhiro Tsujikawa
dd1850aed0
Emit minimum header table size in encoding context update
2014-07-31 23:05:53 +09:00
Tatsuhiro Tsujikawa
e147c14186
Remove ent_name member and use index solely
2014-07-31 23:05:52 +09:00
Tatsuhiro Tsujikawa
06453fb15e
Remove unused role member in nghttp2_hd_context
2014-07-31 23:05:52 +09:00
Tatsuhiro Tsujikawa
744ec4dba1
Don't copy static header and put static table in front of dynamic table
2014-07-31 23:05:52 +09:00
Tatsuhiro Tsujikawa
38bfbffb1b
Remove HPACK reference set
2014-07-31 23:05:52 +09:00
Tatsuhiro Tsujikawa
961dcf614a
Fix wrong detection of neverIndex bit
2014-07-26 23:27:34 +09:00
Tatsuhiro Tsujikawa
57e9b94aaa
Handle header table size up to UINT32_MAX
2014-07-22 22:38:18 +09:00
Tatsuhiro Tsujikawa
9de9b6ebd6
Remove unnecessarily code
2014-07-22 01:52:51 +09:00
Tatsuhiro Tsujikawa
44310c6de5
Fix integer decoding when it takes multiple reads
2014-07-22 01:50:29 +09:00
Tatsuhiro Tsujikawa
d99e1135c8
Search static header table linearly
2014-07-20 19:13:56 +09:00
Tatsuhiro Tsujikawa
67b13ad9ff
Remove unused nghttp2_nva_out
2014-07-18 21:14:07 +09:00
Tatsuhiro Tsujikawa
8dc47c6750
Fix resource leaks
2014-07-18 00:31:32 +09:00
Tatsuhiro Tsujikawa
62423f5949
Fix double free
2014-07-15 22:47:04 +09:00