Tatsuhiro Tsujikawa
ce6dc1303e
Issue session error with PROTOCOL_ERROR if SYN_STREAM with a stream ID
...
which is less than any previously received SYN_STREAM.
2012-03-11 19:27:33 +09:00
Tatsuhiro Tsujikawa
8284746163
spdylay_submit_syn_stream: Return SPDYLAY_ERR_INVALID_ARGUMENT if even
...
Associated-To-Stream-ID is specified.
Check the Associated-To-Stream is active before sending SYN_STREAM.
2012-03-11 18:55:40 +09:00
Tatsuhiro Tsujikawa
94c7e89742
Renamed SPDYLAY_CONCURRENT_STREAMS_MAX as
...
SPDYLAY_INITIAL_MAX_CONCURRENT_STREAMS
2012-03-10 18:49:25 +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
6c9e79e8ca
Use SPDY/3 name in spdylay_settings_flag.
...
Added SPDYLAY_SETTINGS_CLIENT_CERTIFICATE_VECTOR_SIZE.
2012-03-09 21:38:05 +09:00
Tatsuhiro Tsujikawa
d05d29b507
Added SPDY/3 SETTINGS frame pack/unpack
2012-03-08 23:49:26 +09:00
Tatsuhiro Tsujikawa
643238813d
Added doc for spdylay_error values.
2012-03-08 22:44:17 +09:00
Tatsuhiro Tsujikawa
e2092966ef
Mentioned on_ctrl_not_send_callback in spdylay_session_send doc.
2012-03-08 22:02:48 +09:00
Tatsuhiro Tsujikawa
fcde841cab
Added spdylay_is_fatal
2012-03-08 00:40:17 +09:00
Tatsuhiro Tsujikawa
0a7c510147
Renamed SPDYLAY_ERR_STREAM_ALREADY_CLOSED as SPDYLAY_ERR_STREAM_CLOSED
...
Added doc for spdylay_error values
2012-03-08 00:37:18 +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
Jim Morrison
dc1e79f409
Fix a typo.
2012-03-06 09:02:38 -08:00
Tatsuhiro Tsujikawa
185d929d86
Translate received SPDY/2 name/value pairs into SPDY/3 style.
...
The callback functions receives SPDY/3 style name/value pairs.
2012-03-07 00:42:47 +09:00
Tatsuhiro Tsujikawa
00abfc8dd3
Always accept SPDY/3 style name/value pairs from spdylay_submit_* and
...
translate them into SPDY/2 as needed.
2012-03-07 00:38:27 +09:00
Tatsuhiro Tsujikawa
7d9a7b3069
Don't return on partial write
2012-03-06 23:43:45 +09:00
Tatsuhiro Tsujikawa
e2658ca757
Added doc about callback time chart and about how to get stream ID
...
of the request submitted by spdylay_submit_request().
2012-03-06 23:00:17 +09:00
Tatsuhiro Tsujikawa
8fd2fabef8
Made spdylay_select_next_protocol() return SPDY protocol version if one of
...
SPDY versions is selected.
2012-03-02 22:52:01 +09:00
Jim Morrison
cee79961f6
Update documentation for spdylay_select_next_protocol.
2012-03-01 13:26:51 -08:00
Tatsuhiro Tsujikawa
e29bb449e9
Exposed spdylay_frame_alloc_{pack,unpack}_nv for easy performance test
2012-03-01 23:52:15 +09:00
Tatsuhiro Tsujikawa
a9d9126229
Assign 0 to GOAWAY status_code for SPDY/2
2012-03-01 22:39:26 +09:00
Tatsuhiro Tsujikawa
abfc100edb
Added convenient function spdylay_frame_nv_norm_copy()
2012-02-28 23:38:40 +09:00
Tatsuhiro Tsujikawa
e79de111a4
Added spdylay_submit_syn_reply
2012-02-28 23:27:10 +09:00
Tatsuhiro Tsujikawa
9185629604
Fixed memory leak
2012-02-28 23:25:44 +09:00
Tatsuhiro Tsujikawa
7b3a6a2e8b
Updated doc.
2012-02-28 23:14:32 +09:00
Tatsuhiro Tsujikawa
3ed2ab2451
Code cleanup
2012-02-28 21:42:31 +09:00
Tatsuhiro Tsujikawa
a452893068
Fixed the potential dead lock in flow control.
2012-02-28 21:40:19 +09:00
Tatsuhiro Tsujikawa
d5cc71c636
Added status_code handling to GOAWAY
2012-02-26 16:26:38 +09:00
Tatsuhiro Tsujikawa
88cd97843f
Fixed GOAWAY length in SPDY/3
2012-02-26 01:48:18 +09:00
Tatsuhiro Tsujikawa
0a723aa10f
Added spdylay_npn_get_version()
2012-02-26 01:30:41 +09:00
Tatsuhiro Tsujikawa
8693874340
Added SPDY/3 flow control.
2012-02-26 00:12:32 +09:00
Tatsuhiro Tsujikawa
4e62c75b02
Added function to pack and unpack WINDOW_UPDATE frame.
2012-02-25 01:47:37 +09:00
Tatsuhiro Tsujikawa
895562a15b
Fixed uninitialized return value in spdylay_session_new()
2012-02-25 01:41:02 +09:00
Tatsuhiro Tsujikawa
847830f132
Added ability to pack/unpack SPDY/3 frames.
...
Added SPDY/3 zlib dictionary from draft-mbelshe-httpbis-spdy-00.
2012-02-25 01:17:03 +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
7652d3f4ca
Added support for 4 bytes length in name/value pair.
2012-02-24 23:05:49 +09:00
Tatsuhiro Tsujikawa
cf7da38598
Define flags separately for control and data frames.
2012-02-24 21:40:13 +09:00
Tatsuhiro Tsujikawa
946e6f41af
Updated doc
2012-02-24 00:05:45 +09:00
Tatsuhiro Tsujikawa
9dbec4f2bf
Small refactoring
2012-02-24 00:04:35 +09:00
Tatsuhiro Tsujikawa
769150d5f7
Added spdylay_submit_headers function.
2012-02-24 00:02:29 +09:00
Tatsuhiro Tsujikawa
e182308cb7
Fixed assoc_stream_id type.
2012-02-23 23:28:46 +09:00
Tatsuhiro Tsujikawa
75bdfbf256
Made data_prd argument const.
2012-02-23 23:22:58 +09:00
Tatsuhiro Tsujikawa
9e9e281bca
Added spdylay_submit_syn_stream function.
2012-02-23 23:20:05 +09:00
Tatsuhiro Tsujikawa
a1d2325a5e
Assert where FATAL error is expected. Don't return arbitrary error code from
...
user callback. Updated doc.
2012-02-23 22:49:08 +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
33cd4b5946
Updated doc
2012-02-21 23:56:51 +09:00
Tatsuhiro Tsujikawa
11c83aae73
Updated doc
2012-02-21 23:24:16 +09:00
Tatsuhiro Tsujikawa
9fa8357bbc
Made return value of spdylay_map_init() void. Updated doc.
2012-02-21 23:23:47 +09:00
Tatsuhiro Tsujikawa
37944253d2
Ensure read_callback is non-NULL for response bodies.
2012-02-21 22:04:24 +09:00
Jim Morrison
6e7025b9f5
Test that FLAG_FIN is set if the read callback is NULL.
2012-02-20 13:12:13 -08:00
Tatsuhiro Tsujikawa
54e4c80b96
Added stream_id argument to spdylay_data_source_read_callback
2012-02-19 23:48:39 +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
4f28698572
Fixed: if bytes of one frame are received in several chunks, unpacking fails.
2012-02-19 00:05:52 +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
b182179aca
Check frame length strictly for GOAWAY, RST_STREAM and PING.
2012-02-18 21:51:57 +09:00
Tatsuhiro Tsujikawa
122c619260
Fixed spdylay_frame_count_nv_space() bug. Check all data is processed in spdylay_frame_count_unpack_nv_space()
2012-02-18 17:25:13 +09:00
Tatsuhiro Tsujikawa
b1da54a549
Made SPDYLAY_ERR_ZLIB FATAL error. Removed SPDYLAY_ERR_ZLIB_BUF.
...
If SPDYLAY_ERR_ZLIB is encountered, zlib context is out of sync.
So we cannot further SYN_STREAM/SYN_REPLY/HEADERS frames.
I'm not sure we should send GOAWAY in this case.
So bail out with fatal error and drop connection for now.
2012-02-18 02:19:09 +09:00
Tatsuhiro Tsujikawa
005883e363
Added TODO comment
2012-02-17 00:34:36 +09:00
Tatsuhiro Tsujikawa
4dd43fc28f
Updated doc
2012-02-16 23:48:12 +09:00
Tatsuhiro Tsujikawa
6cb4259232
Merge branch 'master' of https://github.com/sorced-jim/spdylay into sorced-jim-master
2012-02-16 23:41:53 +09:00
Tatsuhiro Tsujikawa
b81b5a3116
Added eof member to spdylay_data to indicate all data are read.
...
Ensure that if flags contains SPDYLAY_FLAG_FIN, only the last DATA frame
has FLAG_FIN set.
2012-02-16 23:38:19 +09:00
Tatsuhiro Tsujikawa
d4ba423248
Reuse session->iframe.buf for all incoming frames.
2012-02-16 23:09:06 +09:00
Tatsuhiro Tsujikawa
7a6bf8e5cc
Allocate bytes divisible by 4KiB when expanding buffer
2012-02-16 22:54:08 +09:00
Tatsuhiro Tsujikawa
61cfa3b9f8
Simplified error handling in spdylay_session_new
2012-02-16 22:47:49 +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
Jim Morrison
63353ea486
Ensure read_callback is non-NULL for request bodies.
2012-02-15 14:30:36 -08:00
Jim Morrison
f05a67641f
Be a bit more liberal about what methods accept message bodies.
2012-02-15 13:49:02 -08:00
Jim Morrison
d04449eb28
Document that url should have the query parameters.
2012-02-15 13:33:30 -08:00
Tatsuhiro Tsujikawa
85ec883d11
Lower-case names in name/value pairs in spdylay_submit_{request, response}
2012-02-15 23:54:42 +09:00
Tatsuhiro Tsujikawa
e7e2c69526
Renamed spdylay_submit_cancel() as spdylay_submit_rst_stream().
2012-02-15 23:27:19 +09:00
Tatsuhiro Tsujikawa
c1aefb3ba5
Added flags argument to spdylay_submit_data() and spdylay_frame_data_init().
...
The intention is make spdylay_submit_data() more generic, allowing trailing
DATA and/or HEADERS frames.
2012-02-15 23:02:51 +09:00
Tatsuhiro Tsujikawa
938f51964d
Respond RST_STREAM with PROTOCOL_ERROR when upper cased name is present in nv.
2012-02-15 22:11:42 +09:00
Tatsuhiro Tsujikawa
f71572b835
Don't send DATA frame if RST_STREAM was queued for this stream.
2012-02-15 01:07:51 +09:00
Tatsuhiro Tsujikawa
fd06d21638
Call on_stream_close_callback when server pushed SYN_STREAM has FIN flag set.
...
Don't mix status code and return value in
spdylay_session_on_syn_stream_received.
2012-02-15 00:45:09 +09:00
Tatsuhiro Tsujikawa
97b853254a
Fixed the bug that length parameter in on_data_send_callback includes header length.
2012-02-14 01:42:00 +09:00
Tatsuhiro Tsujikawa
7abf48f061
Fixed typo
2012-02-13 01:41:35 +09:00
Tatsuhiro Tsujikawa
81307745c4
Made spdylay_outbound_item_compar() static
2012-02-13 00:48:03 +09:00
Tatsuhiro Tsujikawa
a48ad800b2
When a stream is canceled by RST_STREAM, don't send further DATA on that stream.
2012-02-12 19:01:23 +09:00
Tatsuhiro Tsujikawa
9e3191a548
Updated doc
2012-02-12 17:43:50 +09:00
Tatsuhiro Tsujikawa
a4961a95bd
Moved spdylay_submit_* functions to spdylay_submit.c
2012-02-12 17:41:55 +09:00
Tatsuhiro Tsujikawa
8fac259285
For non-overlap case, made out and outlen left untouched
2012-02-09 22:46:26 +09:00
Tatsuhiro Tsujikawa
4f5c6b60ef
Ignore control frame other than SYN_STREAM if version != SPDYLAY_PROTO_VERSION
2012-02-09 00:27:22 +09:00
Tatsuhiro Tsujikawa
d7e58b5cab
Updated doc
2012-02-08 23:51:52 +09:00
Tatsuhiro Tsujikawa
34f0f6be1b
Refuse incoming SYN_STREAM with SPDYLAY_REFUSED_STREAM if max-concurrent-streams number is reached.
2012-02-08 23:45:48 +09:00
Tatsuhiro Tsujikawa
580a2b1b1e
Updated doc
2012-02-08 22:34:48 +09:00
Tatsuhiro Tsujikawa
656a4b6e72
Fixed compiler warning
2012-02-08 21:49:15 +09:00
Tatsuhiro Tsujikawa
679159878f
Merge branch 'master' of https://github.com/sorced-jim/spdylay into sorced-jim-master
...
Conflicts:
tests/main.c
tests/spdylay_session_test.c
tests/spdylay_session_test.h
2012-02-08 21:37:44 +09:00
Tatsuhiro Tsujikawa
b8700259fd
Changed behaviour of spdylay_select_next_protocol()
...
We use following algorithm to select protocol:
1. If server's list contains "spdy/2", this function selects
"spdy/2" and returns 1. The following steps are not taken.
2. If server's list contains "http/1.1", this function selects
"http/1.1" and returns 0. The following step is not taken.
3. This function selects "spdy/2" and returns -1. (So called
non-overlap case).
2012-02-08 21:20:50 +09:00
Jim Morrison
4298dc8a51
Erase the stream from the map after calling the on_stream_close callback
2012-02-07 14:17:38 -08:00
Tatsuhiro Tsujikawa
6904ccc023
Removed unused debug function
2012-02-08 01:28:59 +09:00
Tatsuhiro Tsujikawa
154b02c464
Set max outbound DATA frame length to 8+4KiB
2012-02-08 01:28:00 +09:00
Tatsuhiro Tsujikawa
59329b0070
Set buffer size of inbound frames to 16KiB.
2012-02-08 01:25:26 +09:00
Tatsuhiro Tsujikawa
4630dfb4fe
Added spdylay_on_request_recv_callback function.
...
This function invoked when request from remote peer is
received. In other words, frame with FIN flag set is received. In
HTTP, this means HTTP request, including request body, is fully
received.
2012-02-08 00:11:44 +09:00
Tatsuhiro Tsujikawa
e8a9268985
Included spdylayver.h from spdylay.h
2012-02-07 21:19:23 +09:00
Tatsuhiro Tsujikawa
5012f177d0
Fixed 2 bugs: incorrect DATA frame length and data payload is zero-cleard.
2012-02-07 02:04:00 +09:00
Tatsuhiro Tsujikawa
a14b9a1ba6
Added spdylay_submit_cancel() to send RST_STREAM
2012-02-06 21:20:35 +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
d4c5f39cf9
Don't check multiple in-sequence NULL in spdylay_frame_count_unpack_nv_space
...
If we return negative error code in that function, it means frame will not
unpacked and ends up to lose any information the frame contains.
The spec says it should send RST_STREAM with PROTOCOL_ERROR, so we need
at least stream ID.
Therefore, the check should be performed in
spdylay_session_on_syn_stream_received().
2012-02-05 21:57:55 +09:00