Commit Graph

66 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa 6f30bbbcb5 Fixed test name 2012-02-16 23:47:04 +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 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 40e8fc960e Create a test that explicitly checks that a key exists only once in a name/value block. 2012-02-15 12:07:25 -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 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 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 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 028e1f2b8f Added test case where DATA frame is backed off by higher priority frame. 2012-02-12 18:30:19 +09:00
Tatsuhiro Tsujikawa ad50b75d75 Fixed compiler warning 2012-02-09 22:48:33 +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 f1c4427328 Added a check to see whether the installed cunit requires -lncurses 2012-02-09 22:11:30 +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 fa312caa06 Check cunit and openssl in configure and set substitute variables. 2012-02-08 23:11:06 +09:00
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