Tatsuhiro Tsujikawa
20173b5f61
NGHTTP2_SETTINGS_FLOW_CONTROL_OPTIONS: Check least significant bit only
2013-07-26 23:11:41 +09:00
Tatsuhiro Tsujikawa
459a269049
Define HTTP/2.0 protocol version ID
2013-07-26 01:38:04 +09:00
Tatsuhiro Tsujikawa
9c54e63871
Remove bogus assert
2013-07-26 01:34:57 +09:00
Tatsuhiro Tsujikawa
e496800cb7
Fix header compression bug
2013-07-26 01:34:28 +09:00
Tatsuhiro Tsujikawa
48d7453a21
Rename SPDY terms
2013-07-25 21:18:13 +09:00
Tatsuhiro Tsujikawa
1056d8690e
Rename functions related to HEADERS
2013-07-25 21:07:38 +09:00
Tatsuhiro Tsujikawa
3cc71a707e
Rename nghttp2_headers_category members
...
Add NGHTTP2_HCAT_PUSH_RESPONSE
2013-07-25 20:57:50 +09:00
Tatsuhiro Tsujikawa
442e10cc78
Update doc
2013-07-25 02:13:13 +09:00
Tatsuhiro Tsujikawa
84cbebf4f7
Implement server push
2013-07-25 01:59:48 +09:00
Tatsuhiro Tsujikawa
321136b042
nghttp2_hd: Don't malloc if namelen/valuelen are zero
2013-07-23 23:10:53 +09:00
Tatsuhiro Tsujikawa
0000d3e7f9
Add test for nghttp2_nv_array_from_cstr
2013-07-23 23:03:18 +09:00
Tatsuhiro Tsujikawa
b7ff05c4c6
Fail session if header compression failed on send
2013-07-23 22:47:15 +09:00
Tatsuhiro Tsujikawa
65cb559431
Change priority update scheme
2013-07-23 21:33:28 +09:00
Tatsuhiro Tsujikawa
3c9e31da87
Don't substitute if same indexed header field name is already in working set
2013-07-23 02:52:08 +09:00
Tatsuhiro Tsujikawa
cca1d19d3d
Fix WINDOW_UPDATE enum value
2013-07-23 02:08:32 +09:00
Tatsuhiro Tsujikawa
ef3caffe8b
Remove push related members from nghttp2_stream
2013-07-23 00:46:55 +09:00
Tatsuhiro Tsujikawa
4b6885ce9f
Send PRIORITY with current stream priority
2013-07-23 00:36:20 +09:00
Tatsuhiro Tsujikawa
6f28d44bef
Call nghttp2_session_handle_invalid_connection if stream_id == 0 or != 0 case
2013-07-23 00:33:47 +09:00
Tatsuhiro Tsujikawa
0bcf90d32d
Support PRIORITY frame send and receive
2013-07-23 00:28:00 +09:00
Tatsuhiro Tsujikawa
9e9a7fb160
Add nghttpd and 24 bytes client connection header support
2013-07-22 21:56:19 +09:00
Tatsuhiro Tsujikawa
1dd21c1e30
Handle invalid stream ID (== 0 or != 0) cases
2013-07-21 18:40:47 +09:00
Tatsuhiro Tsujikawa
ed39044273
nghttp2_session_handle_invalid_stream: Remove stream_id parameter
2013-07-21 18:26:29 +09:00
Tatsuhiro Tsujikawa
ce47881e73
nghttp2_session_handle_parse_error: Call nghttp2_session_fail_session
2013-07-21 18:23:50 +09:00
Tatsuhiro Tsujikawa
d96da77412
Add nghttp2_session_handle_invalid_connction to simply code
2013-07-21 18:20:23 +09:00
Tatsuhiro Tsujikawa
94258cd0b8
Move NGHTTP2_PRI_* to nghttp2.h, fix too small pri data type in src
2013-07-20 01:59:43 +09:00
Tatsuhiro Tsujikawa
8b3a3efadc
Change priority increasing scheme
2013-07-20 01:58:44 +09:00
Tatsuhiro Tsujikawa
68afda92ac
Cleanup
2013-07-20 01:28:52 +09:00
Tatsuhiro Tsujikawa
b92b49f882
Cleanup
2013-07-20 01:27:26 +09:00
Tatsuhiro Tsujikawa
9c58004a86
Cleanup
2013-07-20 01:24:34 +09:00
Tatsuhiro Tsujikawa
e92b74d66e
Use substitution as long as no eviction is required
2013-07-20 01:19:00 +09:00
Tatsuhiro Tsujikawa
aa87130711
Fix uninitialized nghttp2_hd_ws_entry index
2013-07-20 01:02:01 +09:00
Tatsuhiro Tsujikawa
00b2d06850
Refactor nghttp2_hd
2013-07-20 01:02:01 +09:00
Tatsuhiro Tsujikawa
fb43f8aa93
Update doc
2013-07-20 00:28:25 +09:00
Tatsuhiro Tsujikawa
aa4df35a10
Remove NGHTTP2_OPT_MAX_RECV_CTRL_FRAME_BUFFER option
2013-07-20 00:24:25 +09:00
Tatsuhiro Tsujikawa
b5810479a4
Remove NGHTTP2_ERR_CREDENTIAL_PENDING check
2013-07-20 00:22:12 +09:00
Tatsuhiro Tsujikawa
3186dede72
Add comment
2013-07-20 00:21:07 +09:00
Tatsuhiro Tsujikawa
30d2c86a7a
Remove old zlib compression and other cleanup
2013-07-20 00:20:16 +09:00
Tatsuhiro Tsujikawa
61bf7c6b02
Integrate new header compression
2013-07-20 00:08:14 +09:00
Tatsuhiro Tsujikawa
45c2245bfb
Implement header compression draft 01
2013-07-19 16:50:31 +09:00
Tatsuhiro Tsujikawa
76b430c26b
Invoke on_invalid_frame_recv_callback on session failure
2013-07-16 23:47:56 +09:00
Tatsuhiro Tsujikawa
f9911a6251
Use realloc in nghttp2_reserve_buffer
2013-07-16 22:22:57 +09:00
Tatsuhiro Tsujikawa
a3bdda68f8
End flow control by WINDOW_UPDATE
2013-07-16 21:30:36 +09:00
Tatsuhiro Tsujikawa
d54cfb88ff
Add connection-level flow control
2013-07-16 20:54:24 +09:00
Tatsuhiro Tsujikawa
1fdaa7e59a
Disable flow control entirely with FLOW_CONTROL_OPTIONS
2013-07-16 18:26:57 +09:00
Tatsuhiro Tsujikawa
24cab312cf
Make spdycat and spdyd barely work
2013-07-16 00:15:04 +09:00
Tatsuhiro Tsujikawa
48cb017245
Implement HTTP-draft-04/2.0
2013-07-15 21:45:59 +09:00
Tatsuhiro Tsujikawa
0edce70343
Rebranding nghttp2
2013-07-13 00:43:06 +09:00
Tatsuhiro Tsujikawa
9fc5c7c299
Adjust priority of outbound DATA frames so that it does not starve others
2013-05-26 15:40:16 +09:00
Tatsuhiro Tsujikawa
f47bf214e5
Allow server initiated stream ID in associated-stream-id
2013-04-05 23:24:28 +09:00
Tatsuhiro Tsujikawa
439b34f49f
Don't allow control characters in outgoing name/value pairs
...
This check is done in spdylay_submit_* family functions and they will
return error if they found control characters.
2013-03-23 21:23:13 +09:00
Tatsuhiro Tsujikawa
10c54e44ba
Don't pack multiple empty header values in one header field
...
SPDY spec does not allow multiple empty header values in one header
field. This change makes out-going framer ignore such empty header
value if there is non-empty header value with the same name.
2013-03-23 19:31:22 +09:00
Tatsuhiro Tsujikawa
2ca7b51eb6
Fix the incoming last empty header value is not checked properly
...
This change fixes the bug that spdylay_frame_unpack_nv does not check
the size of header value if it is the last value in NULL separated
list.
2013-03-23 18:50:36 +09:00
Tatsuhiro Tsujikawa
fc0cfc7faf
Document about flags of spdylay_send_callback and spdylay_recv_callback
2013-03-01 21:01:45 +09:00
Tatsuhiro Tsujikawa
cbb819aed7
spdylay_session_prep_frame: Remove dead code
2013-01-25 01:00:12 +09:00
Tatsuhiro Tsujikawa
258c7f1e65
spdylay_frame_pack_syn_reply: Make nv_offset ssize_t
2013-01-25 00:55:30 +09:00
Tatsuhiro Tsujikawa
0649a7ea61
Add spdylay_buffer_reader_count to replace bunch of 1 byte read
2013-01-22 00:12:15 +09:00
Tatsuhiro Tsujikawa
5adfd07e7c
Fix SPDY/3 priority pack and unpack handling
2013-01-20 19:04:04 +09:00
Tatsuhiro Tsujikawa
d81827c073
Update GOAWAY INTERNAL_ERROR value according to SPDY/3 spec change
2012-11-14 21:17:04 +09:00
Tatsuhiro Tsujikawa
46e7da2166
Get rid of flags member in spdylay_map
2012-10-05 23:41:49 +09:00
Tatsuhiro Tsujikawa
24e932dfa2
Iterative treap implementation
...
This change implements spdylay_map functions in iterative approach
instead of original recursive approach. The iterative version is
overall faster than recursive one. The traversal function
(spdylay_map_each) is slightly slower but it is not noticeable.
2012-10-05 00:46:03 +09:00
Tatsuhiro Tsujikawa
58619a4f97
Enable name/value header compression on server side
2012-09-15 00:47:17 +09:00
Tatsuhiro Tsujikawa
088e4f15a2
Check frame length after packing a frame
...
If resultant length of a frame exceeds the maximum value (which is
2**24 - 1 for SPDY/2 and 3), SPDYLAY_ERR_FRAME_TOO_LARGE is used to
indicate this error. This error will be notified by
on_ctrl_not_send_callback.
2012-09-14 22:41:55 +09:00
Tatsuhiro Tsujikawa
744f35e7ea
Disable header compression for now
2012-09-14 21:43:41 +09:00
Tatsuhiro Tsujikawa
b8d0b4034c
Eliminate malloc in spdylay_map
...
We use intrusive style pattern in spdylay_stream, which now has
spdylay_map_entry has its first member.
2012-09-12 00:13:02 +09:00
Tatsuhiro Tsujikawa
4e5e741907
Add spdylay_npn_get_proto_list() public API function.
...
spdylay_npn_get_proto_list() returns a pointer to the supported SPDY
version list. The element of the list is spdylay_npn_proto struct. It
contains all SPDY version information this library supports. The
application can use this information to configure NPN protocol
offerings/selection.
2012-08-27 23:16:44 +09:00
Tatsuhiro Tsujikawa
d8c4b19351
Fix error with w64-mingw32 cross compiler. Add --enable-example option.
2012-08-24 02:15:57 +09:00
Tatsuhiro Tsujikawa
c59c591ee0
Updated doc
2012-08-22 21:33:35 +09:00
Tatsuhiro Tsujikawa
c28b731ef0
Updated doc
2012-08-22 01:11:10 +09:00
Tatsuhiro Tsujikawa
bafcbfde88
Remove unused zlib.h header file from spdylay.h
2012-08-22 00:14:02 +09:00
Tatsuhiro Tsujikawa
f8fcee122a
Check that empty name and NULL value are not included in nv
2012-08-21 23:19:15 +09:00
Tatsuhiro Tsujikawa
5dcdf95a67
Fix doc
2012-08-21 01:03:22 +09:00
Tatsuhiro Tsujikawa
7cc1c73120
Updated doc
2012-08-03 22:35:38 +09:00
Tatsuhiro Tsujikawa
05e6d527b1
Fix compile error on netbsd
...
Include config.h from sources under examples. Added kevent.udata type
check.
2012-07-27 22:11:13 +09:00
Tatsuhiro Tsujikawa
5236394c1c
Take into account shut_flags when accepting DATA frame
2012-06-14 22:39:44 +09:00
Tatsuhiro Tsujikawa
adefcad530
Don't call on_data_recv_callback and on_data_chunk_recv_callback if
...
stream was closed or being closed.
2012-06-08 23:48:35 +09:00
Tatsuhiro Tsujikawa
d654ad0cc6
Fixed bug on_ctrl_recv_callback not called for RST_STREAM
2012-06-04 23:44:18 +09:00
Tatsuhiro Tsujikawa
3c49a31a07
Fixed typo
2012-05-30 21:20:38 +09:00
Tatsuhiro Tsujikawa
ad13e56617
Removed unused variable
2012-05-25 19:07:01 +09:00
Tatsuhiro Tsujikawa
e13152c0a5
Made spdylay_strerror(0) return "Success"
2012-05-25 14:44:25 +09:00
Tatsuhiro Tsujikawa
4dd9c32c25
Added SPDYLAY_OPT_MAX_RECV_CTRL_FRAME_BUFFER option.
...
This option sets maximum receive buffer size for incoming control
frame. Basically the library checks the length field of the incoming
control frame. For frames with name/value header block, the library
also checks the length of inflated block is also under the limit. This
is done while incrementally inflating block. If the length of frames
with name/value header block exceeds the limit, the library will issue
RST_STREAM with FRAME_TOO_LARGE. For other frames, it will issue
GOAWAY.
2012-05-25 13:49:18 +09:00
Tatsuhiro Tsujikawa
a6ae4fc72c
Incremental name/value block decompression
2012-05-25 10:46:40 +09:00
Tatsuhiro Tsujikawa
a18f04e8c7
Fixed buffer overrun in spdylay_pq_push
2012-05-24 21:35:27 +09:00
Tatsuhiro Tsujikawa
b06fa25ad2
Fixed compile error with -Wshadow. Fixed const cast.
2012-05-20 17:40:29 +09:00
Tatsuhiro Tsujikawa
6f066d7f64
Avoid overflow of spdylay_stream.recv_window_size
2012-05-20 16:13:26 +09:00
Tatsuhiro Tsujikawa
b95e9a8c4c
Made spdylay_submit_window_update() not be bounded by recv_window_size
...
Current SPDY/3 spec does not clearly prohibit to send
delta_window_size which makes resulting window size more than initial
window size. For this reason, spdylay_submit_window_update() can send
delta_window_size in [1, (1 << 31)-1], inclusive, without bounded by
stream's recv_window_size. Of course, the application is now
responsible to keep the resulting window size <= (1 << 31)-1.
spdylay_submit_window_update() now returns
SPDYLAY_ERR_INVALID_ARGUMENT if delta_window_size is 0 or negative.
2012-05-20 16:09:57 +09:00
Tatsuhiro Tsujikawa
3be09efbde
Fixed the bug that erase_rotate_recur() erases parent node.
2012-05-19 00:49:15 +09:00
Tatsuhiro Tsujikawa
f96c7f8720
Updated doc
2012-05-16 23:48:27 +09:00
Tatsuhiro Tsujikawa
c53e7613c9
Renamed index in spdylay_get_credential_cert prototype to idx
...
This is because compiler may warn that name `index` shadows global
declaration if the application code uses the prototype argument names
as is.
2012-05-13 17:40:18 +09:00
Tatsuhiro Tsujikawa
88599228f8
Prefer spdy/3 to spdy/2 in spdylay_select_next_protocol()
2012-05-12 18:23:17 +09:00
Tatsuhiro Tsujikawa
5c187b950f
spdylay_data_source_read_callback can return
...
SPDYLAY_ERR_TEMPORAL_CALLBACK_FAILURE to signal stream error.
2012-05-12 18:19:05 +09:00
Tatsuhiro Tsujikawa
42c0e3c758
Renamed error as error_code in spdylay_on_ctrl_not_send_callback prototype
2012-05-11 23:33:46 +09:00
Tatsuhiro Tsujikawa
93593a76ec
spdylay_session_pack_data() now returns error code as specified in the doc.
2012-05-11 23:23:46 +09:00
Tatsuhiro Tsujikawa
ef2bd10d94
Check window size is positive when bringing back deferred DATA frame
...
when WINDOW_UPDATE is received.
2012-05-11 23:02:13 +09:00
Tatsuhiro Tsujikawa
9b619e5dd7
Bring back deferred DATA to the outbound queue when SETTINGS with
...
INITIAL_WINDOW_SIZE is received and the window size becomes positive.
2012-05-11 23:01:40 +09:00
Tatsuhiro Tsujikawa
3e2dc04264
Fixed the bug that spdylay_recv does not return SPDYLAY_ERR_EOF.
2012-05-11 00:21:36 +09:00
Tatsuhiro Tsujikawa
0288bedabb
Renamed FRAME_TOO_LARGE as SPDYLAY_FRAME_TOO_LARGE
2012-05-09 23:29:33 +09:00
Tatsuhiro Tsujikawa
b371a0ae19
Updated doc
2012-05-09 23:25:31 +09:00
Tatsuhiro Tsujikawa
1158de22a3
Added status_code argument to spdylay_on_invalid_ctrl_recv_callback
2012-05-09 23:10:52 +09:00
Tatsuhiro Tsujikawa
649e62bd33
Updated doc
2012-05-09 23:03:16 +09:00
Tatsuhiro Tsujikawa
d377fe0dc6
Added spdylay_strerror() public API.
2012-05-09 23:01:46 +09:00