Tatsuhiro Tsujikawa
14ac6f8ca8
Fixed 16bit int overflow
2012-02-08 21:50:16 +09:00
Tatsuhiro Tsujikawa
887850e2f0
Use explicit name for variables to check callback function was called.
2012-02-08 21:46:29 +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
Jim Morrison
4ebfa021ba
Use pkg-config to get the cunit library.
2012-02-07 14:16:55 -08: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
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
d0cd362852
Changed spdylay_select_next_protocol behaviour
...
It now always select "spdy/2" as a next protocol regardless whether or not
the server advertises it. The NPN draft allows this.
Returning integer version number is not flexible because the selected protcol
is just a string.
The function now returns 0 if the server advertised spdy/2, or -1.
2012-02-05 21:48:20 +09:00
Tatsuhiro Tsujikawa
be7cc9710f
Added asserts to test_spdylay_frame_count_unpack_nv_space()
2012-02-04 23:27:05 +09:00
Tatsuhiro Tsujikawa
8b20e83652
Rewritten spdylay_frame_unpack_nv().
...
We use just single buffer to store name/value headers fields, instead of
allocating memory for each name/value strings.
It is now more than 2 times faster than old one.
2012-02-04 23:09:03 +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
876c33c562
Merge branch 'master' of https://github.com/sorced-jim/spdylay into sorced-jim-master
...
Conflicts:
examples/spdylay_ssl.cc
tests/Makefile.am
tests/main.c
Changes:
spdylay_select_next_protocol() returns -1 if it fails.
Use cunit without pkg-config because debian does not provide .pc file.
Some doc updates to suite my taste.
Added spdylay_npn.h
2012-02-03 23:53:43 +09:00
Jim Morrison
ea60bd8c6e
Add an NPN callback helper that finds the correct version of spdy
2012-02-02 16:31:11 -08: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
bb6a90dc4d
Added spdylay_stream_add_pushed_stream
...
With this function and 3 new member in spdylay_stream, we can track server-
pushed streams which associate them to this stream.
2012-02-02 21:51:52 +09:00
Tatsuhiro Tsujikawa
562278194c
Added server push SYN_STREAM validation. Added spdylay_session_server_new()
...
We still does not check "url" is in nv.
2012-02-02 00:19:31 +09:00
Tatsuhiro Tsujikawa
0b75800c23
Added SETTINGS frame and its pack/unpack functions.
2012-02-01 00:26:26 +09:00
Tatsuhiro Tsujikawa
9785b99959
Suppress warnings in test code
2012-01-31 21:38:40 +09:00
Tatsuhiro Tsujikawa
afbade9e79
Fixed test error
2012-01-31 21:34:42 +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
e212eea08a
Don't send GOAWAY when it is received from peer. Fixed want_read, want_write.
2012-01-29 15:11:10 +09:00
Tatsuhiro Tsujikawa
82bcf78ec1
Fixed HFILES entries
2012-01-29 00:25:02 +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
33c62b90c6
Added check for unpacked ctrl header
2012-01-28 04:01:16 +09:00
Tatsuhiro Tsujikawa
de57b6efea
Sort nv in spdylay_submit_request and spdylay_submit_response
2012-01-28 00:09:01 +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
8f53343dc3
Renamed spdylay_req_submit and spdylay_reply_submit as spdylay_submit_request and spdylay_submit_response
2012-01-27 23:35:23 +09:00
Tatsuhiro Tsujikawa
d1c4c59aad
Added handling of received PING
2012-01-27 23:05:29 +09:00
Tatsuhiro Tsujikawa
9461147968
Added pack/unpack of PING
2012-01-27 19:35:05 +09:00
Tatsuhiro Tsujikawa
a59c3efedb
Added handling when HEADERS is received.
2012-01-27 19:10:13 +09:00
Tatsuhiro Tsujikawa
1c0ec66a2b
Added HEADERS frame. Added SPDYLAY_FRAME_HEAD_LENGTH.
2012-01-27 18:21:14 +09:00
Tatsuhiro Tsujikawa
beb509ef39
Check stream before sending SYN_REPLY and DATA. Don't make stream if incoming SYN_STREAM has FIN and UNIDIRECTIONAL set.
2012-01-27 17:09:40 +09:00
Tatsuhiro Tsujikawa
fd802300fa
Fixed compiler warning
2012-01-27 01:33:44 +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
f642bb98c7
Added spdylay_map_size()
2012-01-26 02:28:58 +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
1ce2598758
Fixed bug that causes segmentation fault when erasing key which does not exist in map.
2012-01-26 00:21:31 +09:00
Tatsuhiro Tsujikawa
43c0ef8151
Check that SYN_STREAM pri is stored in stream
2012-01-25 23:56:18 +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
5ececcd8e7
Added test
2012-01-24 23:06:58 +09:00
Tatsuhiro Tsujikawa
a52ff39850
Renamed spdylay_session_init as spdylay_session_new. Added session arg to cb.
...
Now recv_callback and send_callback accepts session argument.
spdylay_session_free was also renamed as spdylay_session_del.
2012-01-24 22:56:26 +09:00
Tatsuhiro Tsujikawa
9c8270436f
Added header deflate/inflate using zlib. Added send/recv frame.
2012-01-24 22:02:24 +09:00
Tatsuhiro Tsujikawa
1330d74b73
Added struct of fixed sized chunk buffers backed by queue
2012-01-20 01:04:13 +09:00
Tatsuhiro Tsujikawa
1000998228
Added spdylay_queue
2012-01-19 21:57:26 +09:00
Tatsuhiro Tsujikawa
a03afa6a82
Added spdylay_map. Added missing tests/main.c
2012-01-19 21:36:13 +09:00
Tatsuhiro Tsujikawa
0eebf89f35
Added priority queue
2012-01-18 02:10:22 +09:00