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
efebc1e1af
Made SPDYLAY_PROTO_SPDY2 and SPDYLAY_PROTO_SPDY3 enum
2012-03-27 18:23:05 +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
262cda86e8
Issue RST_STREAM with PROTOCOL_ERROR if invalid header block is received.
...
We say the header block is invalid if at least one of the following
condition is true:
There are duplicate header names; or the header names are not
encoded in US-ASCII character set and not lower cased; or the
header name is zero-length string; or the header value contains
multiple in-sequence NUL bytes.
spdylay_frame_unpack_nv() returns SPDYLAY_ERR_INVALID_HEADER_BLOCK
if the unpacking suceeded but it found the header block is invalid.
This means that caller treats it as success, but do additional
processing for invalid header block if it wants.
The functions calling spdylay_frame_unpack_nv() also return
SPDYLAY_ERR_INVALID_HEADER_BLOCK.
2012-03-26 23:19:58 +09:00
Tatsuhiro Tsujikawa
9e716eb635
Code cleanup: C89 and old-style-prototypes and definition.
2012-03-23 02:17:48 +09:00
Tatsuhiro Tsujikawa
f40615a3dc
Updated doc
2012-03-19 00:47:15 +09:00
Tatsuhiro Tsujikawa
33e86024d9
Updated doc
2012-03-17 23:44:49 +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
8f038ae4b6
Added spdylay_session_get_outbound_queue_size()
2012-03-15 23:06:28 +09:00
Tatsuhiro Tsujikawa
b8e4116f9a
Updated doc
2012-03-15 22:39:26 +09:00
Tatsuhiro Tsujikawa
a01b63b37a
Added doc about the required members for spdylay_session_callbacks when
...
it is passed to spdylay_session_{client,server}_new().
2012-03-14 00:36:53 +09:00
Tatsuhiro Tsujikawa
07b02404c3
Added API reference generator script.
...
Formatted the public APIs with Sphinx syntax.
2012-03-14 00:32:52 +09:00
Tatsuhiro Tsujikawa
686c2ea95d
Merge git://github.com/sorced-jim/spdylay into sorced-jim-master
2012-03-11 22:44:39 +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
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
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
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
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
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
e79de111a4
Added spdylay_submit_syn_reply
2012-02-28 23:27:10 +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
d5cc71c636
Added status_code handling to GOAWAY
2012-02-26 16:26:38 +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
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
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
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
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
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
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
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
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
7abf48f061
Fixed typo
2012-02-13 01:41:35 +09:00
Tatsuhiro Tsujikawa
9e3191a548
Updated doc
2012-02-12 17:43:50 +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
d7e58b5cab
Updated doc
2012-02-08 23:51:52 +09:00
Tatsuhiro Tsujikawa
580a2b1b1e
Updated doc
2012-02-08 22:34:48 +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
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
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
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
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
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
1139502675
Removed on_ping_recv_callback. Removed last_ping_time from spdylay_session.
2012-01-31 21:29:46 +09:00
Jim Morrison
732f1cf21f
Include sys/types.h
2012-01-30 17:11:14 -08: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
c6a0fd06c1
Added doc
2012-01-29 17:07:13 +09:00
Tatsuhiro Tsujikawa
925078c199
Added handling of EOF from recv_callback
2012-01-29 16:46:18 +09:00
Tatsuhiro Tsujikawa
8afb91bae8
Added public API headers for distribution
2012-01-29 00:22:50 +09:00
Tatsuhiro Tsujikawa
31aff01697
Added spdylay_submit_goaway()
2012-01-28 19:35:51 +09:00
Tatsuhiro Tsujikawa
aed626bfa5
Added GOAWAY handling
2012-01-28 19:22:38 +09:00
Tatsuhiro Tsujikawa
27e1bcab9e
Added spdylay_before_ctrl_send_callback
2012-01-28 17:25:14 +09:00
Tatsuhiro Tsujikawa
a657208ffd
Added spdylay_on_{ctrl,data}_sent_callback functions
2012-01-28 04:28:39 +09:00
Tatsuhiro Tsujikawa
1ce97c7d5e
Reorder arguments of spdylay_on_data*_recv_callback
2012-01-28 04:20:19 +09:00
Tatsuhiro Tsujikawa
b35f019811
Added callback functions for DATA frames. Fixed unpacking length field.
2012-01-28 03:54:53 +09:00
Tatsuhiro Tsujikawa
4c6765e1ed
Added doc
2012-01-27 23:43:04 +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
74673013ae
Define constant for nv pair offset. Defined SPDYLAY_PROTO_VERSION.
2012-01-27 18:28:29 +09:00
Tatsuhiro Tsujikawa
1c0ec66a2b
Added HEADERS frame. Added SPDYLAY_FRAME_HEAD_LENGTH.
2012-01-27 18:21:14 +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
800b362935
Updated doc
2012-01-25 23:55:11 +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
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
a03afa6a82
Added spdylay_map. Added missing tests/main.c
2012-01-19 21:36:13 +09:00
Tatsuhiro Tsujikawa
f7f3472c98
Added extern "C"
2012-01-18 21:36:29 +09:00
Tatsuhiro Tsujikawa
0eebf89f35
Added priority queue
2012-01-18 02:10:22 +09:00
Tatsuhiro Tsujikawa
1f5bc832f8
Added libtool files
2012-01-18 00:53:12 +09:00