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
Tatsuhiro Tsujikawa
bd06f2cec3
Add const qualifier to nva parameter in nghttp2_hd_deflate_hd()
2014-06-29 23:43:14 +09:00
Tatsuhiro Tsujikawa
d318e6a62e
Support one header field size (name + value) up to 64KiB by default
...
This commits changes the upper bound of one header field size (the sum
of the length of name and value) to 64KiB by default. We may add an
option to change this upper bound in the future.
2014-06-28 11:04:41 +09:00
Tatsuhiro Tsujikawa
16fef227e8
nghttp2_hd_*_new: Leave *inflater_ptr or *deflater_ptr untouched on failure
2014-06-25 21:26:47 +09:00
Tatsuhiro Tsujikawa
31de732e3b
Allocate header table ringbuffer lazily
...
Previously in inflater we reserve new ringbuffer when table size is
changed. This may be potentially a problem if new table size is very
large number. When inflater is not used directly by application, this
is not a problem because application can choose the buffer size. On
the other hand, if application uses inflater directly and it does not
have control of new buffer size (e.g., protocol dissector), then we
just fail to allocate large buffer in
nghttp2_hd_inflate_change_table_size() without actually use such huge
buffer. This change defers the actual allocation of buffer when it is
actually needed so that we will fail when it is absolutely needed.
2014-06-22 13:39:17 +09:00
Alexis La Goutte
9a3cdeb7e6
Fix some other shorten-64-to-32 casting error found by MSVC (64bits)
...
Thanks for Pascal
2014-06-16 19:17:49 +02:00
Alexis La Goutte
c9b6371977
When assertions is disable, there is a warning about unused check_index_range function
...
Make the check for a valid index range a macro, so the compiler doesn't
whine if it's not used, but it's available if it *is* used.
2014-06-16 18:52:11 +02:00
Tatsuhiro Tsujikawa
f85a213fb1
Update static header table
2014-06-14 22:24:47 +09:00
Tatsuhiro Tsujikawa
9b174bf5c9
Fix compile error with -Wshorten-64-to-32
...
The original patch was contributed by Alexis La Goutte
2014-06-11 23:37:16 +09:00
Alexis La Goutte
6b08534ffc
Fix declaration of ‘index’ shadows a global declaration [-Werror=shadow]
...
I have this error with some old gcc (4.6) release (Ubuntu 12.04 or Travis...)
2014-06-03 10:20:05 +02:00
Tatsuhiro Tsujikawa
d113055899
nghttp2_hd: Use single buffer for an name/value pair
...
Previously we use 2 separate buffer for each name and value. The
problem is we would waste buffer space for name because it is usually
small. Also tuning buffer size for each buffer separately is not
elegant and current HTTP server practice is that one buffer for 1
name/value pair. This commit unifies 2 buffers into 1.
2014-05-28 23:33:37 +09:00
Tatsuhiro Tsujikawa
7b9a8acc22
Add HPACK deflation API
2014-05-13 23:42:55 +09:00
Tatsuhiro Tsujikawa
ab76468971
Return NGHTTP2_ERR_BUFFER_ERROR from nghttp2_hd_{deflate,inflate}_hd
...
It is generally useful to know what is the cause of the error. Since
we expose HPACK API, it is friendly to tell application the
insufficient buffer size is a culprit.
2014-05-12 22:58:04 +09:00
Tatsuhiro Tsujikawa
2e5c7f598f
Fix bug HPACK deflater does not send context update after table size change
2014-05-11 21:25:27 +09:00
Tatsuhiro Tsujikawa
3ebb3faf32
Remove nghttp2_ prefix from static function, part 2
2014-05-08 23:54:07 +09:00
Tatsuhiro Tsujikawa
855f39743a
Fix crash when indexed repr index=0
2014-05-01 09:06:54 +09:00
Tatsuhiro Tsujikawa
660c536275
Extend namelen and valuelen in nghttp2_nv to size_t
2014-04-30 23:08:34 +09:00
Tatsuhiro Tsujikawa
1b79114d2d
Fix compiler warnings
2014-04-30 22:16:21 +09:00
Tatsuhiro Tsujikawa
d2e64317ba
Code cleanup, include nghttp2_int.h explicitly to ensure debug macro
2014-04-30 22:08:32 +09:00