Commit Graph

344 Commits

Author SHA1 Message Date
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
Tatsuhiro Tsujikawa c68a0b5e6d Added spdylay_on_unknown_ctrl_recv_callback.
This callback function is invoked when the unknown frame type is received.
Added debug output using this callback to spdycat.
2012-05-09 22:41:08 +09:00
Tatsuhiro Tsujikawa 171bede1fa Added spdylay_session_on_ctrl_recv_parse_error_callback.
This callback function is invoked when the received frame data could not
be parsed correctly.
Added debug output using this callback to spdycat.
2012-05-09 21:55:21 +09:00
Tatsuhiro Tsujikawa b7429e7c2d Added spdylay_submit_window_update() public API. 2012-05-08 23:41:59 +09:00
Tatsuhiro Tsujikawa fa04757ff4 Don't send WINDOW_UPDATE automatically if SPDYLAY_OPT_NO_AUTO_WINDOW_UPDATE
is set.
2012-05-08 23:29:24 +09:00
Tatsuhiro Tsujikawa d6a03f74b7 Updated doc 2012-05-08 23:00:32 +09:00
Tatsuhiro Tsujikawa 13ea7c60ba Added spdylay_session_set_option() public API. 2012-05-08 22:59:34 +09:00
Tatsuhiro Tsujikawa 02e4440e4a Having the number of server and client streams be limited separately
using SETTINGS_MAX_CONCURRENT_STREAMS
2012-05-08 00:59:26 +09:00
Tatsuhiro Tsujikawa 67eca8d078 Use local_settings' INITIAL_WINDOW_SIZE when deciding to send WINDOW_UPDATE. 2012-05-08 00:08:24 +09:00
Tatsuhiro Tsujikawa 7972bd79b9 Initialized opaque with Z_NULL 2012-05-07 22:57:07 +09:00
Tatsuhiro Tsujikawa 5412ccf129 Renamed spdylay_gzip API. Added test for them. 2012-05-07 22:56:28 +09:00
Jim Morrison 1a384a6000 Move inflate functions to libspdylay from examples. 2012-04-30 12:36:37 -07:00
Tatsuhiro Tsujikawa a87303a731 Added zlib to Requires.private and updated Description 2012-04-26 23:32:17 +09:00
Tatsuhiro Tsujikawa b7392acf46 Document markup fix 2012-04-25 21:33:38 +09:00
Tatsuhiro Tsujikawa f21c0ee3d9 Don't call spdylay_zlib_inflate_free when inflateInit failed. 2012-04-24 22:40:59 +09:00
Tatsuhiro Tsujikawa 36ba636e30 Fixed memory leak in out of memory situation 2012-04-06 23:36:10 +09:00
Tatsuhiro Tsujikawa c89fc13c80 Fixed segmentation fault in out of memory situation 2012-04-06 23:35:30 +09:00
Tatsuhiro Tsujikawa d2b189e573 Updated doc 2012-04-06 21:29:37 +09:00
Tatsuhiro Tsujikawa 08d53318cd Updated doc 2012-04-06 02:34:45 +09:00
Tatsuhiro Tsujikawa 94650de16e Exposed spdylay_session_fail_session() to the public API. 2012-04-06 02:16:01 +09:00
Tatsuhiro Tsujikawa ab0bd62b14 Changed SPDYLAY_ERR_CREDENTIAL_PENDING code 2012-04-06 02:07:29 +09:00
Tatsuhiro Tsujikawa a5c7301f4b Updated doc 2012-04-06 02:07:08 +09:00
Tatsuhiro Tsujikawa 9627d5355a Moved SPDYLAY_SETTINGS_MAX inside spdylay_settings_id. 2012-04-06 02:04:54 +09:00
Tatsuhiro Tsujikawa d1d0a16fba Wrote SETTINGS ID pack/unpack without WORDS_BIGENDIAN 2012-04-06 02:02:19 +09:00
Tatsuhiro Tsujikawa d83d1cd33a Added CREDENTIAL frame support. 2012-04-06 01:45:39 +09:00
Tatsuhiro Tsujikawa 4456d2506d Added callbacks for CREDENTIAL frame. 2012-04-02 22:44:37 +09:00