Commit Graph

47 Commits

Author SHA1 Message Date
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 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 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 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 d83d1cd33a Added CREDENTIAL frame support. 2012-04-06 01:45:39 +09:00
Tatsuhiro Tsujikawa ba56ed6c48 Hide spdylay_data from public API.
The spdylay_data contains full of implementation details and is not
used in public API. It should be hidden.
The spdylay_frame union now only contains the control frame.
2012-03-29 23:59:51 +09:00
Tatsuhiro Tsujikawa 200012f1b5 Removed SPDYLAY_SPDY2_PRI_LOWEST and SPDYLAY_SPDY3_PRI_LOWEST macros.
Made spdylay_session_get_pri_lowest() to get the lowest priority value
for the current session.

This change allows the application code to get the lowest priority value
without knowing the protocol version which the current session uses.
2012-03-26 23:35:20 +09:00
Tatsuhiro Tsujikawa 742a8bbac9 Added spdylay_session_mem_recv()
spdylay_session_mem_recv() processes input bytes as the received data
from the remote endpoint. spdylay_session_recv() uses it internally.
The spdylay_inbound_buffer and ibuf member in spdylay_session is removed.
The buffer is allocated in the stack when spdylay_session_recv() is called.
2012-03-17 23:39:38 +09:00
Tatsuhiro Tsujikawa 02924b6dd0 Added spdylay_submit_settings 2012-03-10 18:41:01 +09:00
Tatsuhiro Tsujikawa 82e20192d8 Added functions to process received SETTINGS frame.
Now remote and local settings are stored separately.
The initial window size is included in SETTINGS frame, all active stream's
window sizes are now updated.
Removed the initial_window_size member from spdylay_stream because
it is the same as remote_settings's initial window size.
2012-03-10 00:10:11 +09:00
Tatsuhiro Tsujikawa 11020146f5 Added on_ctrl_not_send_callback.
This callback function is invoked after the control frame
is not sent because of the error. The error is indicated by
the error argument, which is one of the values defined in spdylay_error.
2012-03-08 00:18:18 +09:00
Tatsuhiro Tsujikawa d5cc71c636 Added status_code handling to GOAWAY 2012-02-26 16:26:38 +09:00
Tatsuhiro Tsujikawa 8693874340 Added SPDY/3 flow control. 2012-02-26 00:12:32 +09:00
Tatsuhiro Tsujikawa 995ccbc8e5 Added version argument to spdylay_frame_*_init. Added version member to
spdylay_session.
2012-02-24 23:33:06 +09:00
Tatsuhiro Tsujikawa cf7da38598 Define flags separately for control and data frames. 2012-02-24 21:40:13 +09:00
Tatsuhiro Tsujikawa 5408a21ce9 Merged spdylay_session_pack_data_overwrite() into spdylay_session_pack_data().
spdylay_session_pack_data() now takes the maximum length of DATA payload.
2012-02-22 23:58:33 +09:00
Tatsuhiro Tsujikawa 05627f7712 Updated doc 2012-02-22 23:39:30 +09:00
Tatsuhiro Tsujikawa 301eb29cd4 Added ability to postpone DATA frames for asynchronous I/O. 2012-02-19 23:42:25 +09:00
Tatsuhiro Tsujikawa 03307116a2 Send GOAWAY when spdylay_frame_unpack_* is failed with non-fatal error.
SPDYLAY_ERR_ZLIB is now moved back to non-fatal error and it is subject
to GOAWAY if it occurred.
2012-02-18 21:55:40 +09:00
Tatsuhiro Tsujikawa d4ba423248 Reuse session->iframe.buf for all incoming frames. 2012-02-16 23:09:06 +09:00
Tatsuhiro Tsujikawa ac1629e61b Reuse buffers when unpacking frames. 2012-02-16 22:01:34 +09:00
Tatsuhiro Tsujikawa 050f33e8f9 Reuse buffers when packing frames.
Temporal name/value buffer will be shared by unpacking frame.
2012-02-16 20:54:30 +09:00
Tatsuhiro Tsujikawa 59329b0070 Set buffer size of inbound frames to 16KiB. 2012-02-08 01:25:26 +09:00
Tatsuhiro Tsujikawa 00bed87537 Support max concurrent streams limit.
If max concurrent streams limit is reached, SYN_STREAM frames are not sent
and backed off. If other type of frame is waiting in the tx queue, it is
sent first. We introduced another priority queue for this purpose.
In this change we did not add code to send RST_STREAM when SYN_STREAM is
received but max concurrent stream is reached.
2012-02-06 00:14:19 +09:00
Tatsuhiro Tsujikawa 1f72165549 Added stream_user_data arg to spdylay_submit_request() to identify stream ID later easily.
Specified stream_user_data_arg can be retrieved by
spdylay_session_get_stream_user_data() function. The application code can use
this function insde spdylay_on_ctrl_send_callback() and identify stream ID
for the request associated by the stream_user_data.
The sample usage is in examples/spdycat.cc.
2012-02-04 01:37:21 +09:00
Tatsuhiro Tsujikawa 4030c5ccf5 Closes all server-pushed streams when original stream is closed by RST_STREAM with CANCEL from client.
Fixed spdylay_session_is_my_stream_id()
2012-02-02 23:20:25 +09:00
Tatsuhiro Tsujikawa f429cc45cb Added SETTINGS send/recv. Added missing RST_STREAM send. 2012-02-01 01:12:26 +09:00
Tatsuhiro Tsujikawa 49096387c3 Added seq sort key in ob_pq to preserve the queueing order if priorit is the same. 2012-01-31 22:48:09 +09:00
Tatsuhiro Tsujikawa b87eb8987e Fixed compile error with gcc-4.4 2012-01-31 21:32:46 +09:00
Tatsuhiro Tsujikawa 1139502675 Removed on_ping_recv_callback. Removed last_ping_time from spdylay_session. 2012-01-31 21:29:46 +09:00
Tatsuhiro Tsujikawa 6e12291ae1 Added spdylay_on_stream_close_callback 2012-01-29 23:00:33 +09:00
Tatsuhiro Tsujikawa 3d4cf8aec3 Added data_prd arugment to spdylay_submit_request() and supported POST request. 2012-01-29 19:07:31 +09:00
Tatsuhiro Tsujikawa 06dae79b28 Discard inbound HEADERS and DATA in CLOSING state. Handle stream shutdown when DATA is received with FIN bit set. 2012-01-29 16:27:00 +09:00
Tatsuhiro Tsujikawa 580638c482 Made spdylay_session_open_stream return a pointer to created spdylay_stream. 2012-01-29 00:16:51 +09:00
Tatsuhiro Tsujikawa 971e46f563 More explicit handling of shutdown status of read and write in each stream. 2012-01-29 00:08:51 +09:00
Tatsuhiro Tsujikawa aed626bfa5 Added GOAWAY handling 2012-01-28 19:22:38 +09:00
Tatsuhiro Tsujikawa d614325024 Fixed compiler warning. Added missing spdylay_session_on_ping_received prototype in header 2012-01-27 23:37:47 +09:00
Tatsuhiro Tsujikawa 9f2f6454f3 Added handling of received RST_STREAM 2012-01-27 23:22:27 +09:00
Tatsuhiro Tsujikawa d1c4c59aad Added handling of received PING 2012-01-27 23:05:29 +09:00
Tatsuhiro Tsujikawa a59c3efedb Added handling when HEADERS is received. 2012-01-27 19:10:13 +09:00
Tatsuhiro Tsujikawa 21e165f1f8 Added spdylay_reply_submit() and DATA frame handling after SYN_REPLY. 2012-01-27 01:17:40 +09:00
Tatsuhiro Tsujikawa 6e627548be Added stream status change after sending SYN_STREAM and SYN_REPLY. 2012-01-26 01:04:01 +09:00
Tatsuhiro Tsujikawa cbb8dd6a8c Added pri to spdylay_stream. Refactored SYN_STREAM, SYN_REPLY handling when they are received. 2012-01-25 23:46:07 +09:00
Tatsuhiro Tsujikawa 3bfe48972c Queue RST_STREAM if invalid stream ID is received in SYN_STREAM or SYN_REPLY.
Fixed bug that Z_DATA_ERROR is not handled.
Fixed bug that spdylay_frame_alloc_pack_nv does not use nv_offset correctly.
2012-01-25 21:31:28 +09:00
Tatsuhiro Tsujikawa 9c8270436f Added header deflate/inflate using zlib. Added send/recv frame. 2012-01-24 22:02:24 +09:00