1
0
mirror of https://github.com/moparisthebest/spdylay synced 2024-12-22 23:58:53 -05:00
Commit Graph

192 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa
67669bf3ca Delete downstream if SPDY stream has been already closed 2012-06-05 22:46:47 +09:00
Tatsuhiro Tsujikawa
e8cefa9238 Handle too long upstream request headers 2012-06-05 22:13:22 +09:00
Tatsuhiro Tsujikawa
be1c6bb968 Removed commented send() 2012-06-05 21:25:05 +09:00
Jim Morrison
b1c0287c84 Enable writing partial buffers. 2012-06-04 13:01:36 -07:00
Tatsuhiro Tsujikawa
c04c09ff3e Avoid too large buffering in upstream output. 2012-06-05 03:11:43 +09:00
Tatsuhiro Tsujikawa
fad7f51f8d Initial commit of shrpx: SPDY/HTTPS to HTTP reverse proxy
Put libhtparse in examples/htparse
2012-06-04 23:48:31 +09:00
Tatsuhiro Tsujikawa
08f76b09e3 Aded included <functional> from spdy.h 2012-05-25 21:55:15 +09:00
Tatsuhiro Tsujikawa
80ab232060 Guard include of config.h with HAVE_CONFIG_H 2012-05-19 22:11:51 +09:00
Tatsuhiro Tsujikawa
14f5c463e9 Added missing examples/HtmlParser.{cc,h} 2012-05-19 22:10:07 +09:00
Tatsuhiro Tsujikawa
e2332abc1d Added -s, --stat option to print statistics
Print, for each stream, time delta from SSL/TLS handshake and each
SYN_STREAM. The time deltas are measured after SYN_REPLY received and
all data received.
For example, the following output:

  SYN_REPLY: X(Y)

means SYN_REPLY was received X ms after SSL/TLS handshake and Y ms
after the corresponding SYN_STREAM was sent.
2012-05-19 21:54:41 +09:00
Tatsuhiro Tsujikawa
991ded912d Added -a, --get-asserts option to spdycat
If this option is used, spdycat also downloads assets such as
stylesheets, images and script files linked from the downloaded
resource. They are queued in the same SPDY session.
2012-05-19 17:09:40 +09:00
Tatsuhiro Tsujikawa
8b8d79eeff Include text/html in content-type for error status response 2012-05-19 17:01:11 +09:00
Tatsuhiro Tsujikawa
caf592402c Added -2 option to spdycat 2012-05-12 21:20:19 +09:00
Tatsuhiro Tsujikawa
ca5ccae927 Prefer spdy/3 to spdy/2 in spdyd 2012-05-12 21:19:38 +09:00
Tatsuhiro Tsujikawa
9b22165072 Updated usage output for example programs 2012-05-12 21:13:56 +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
5789f35f5e Print error message using spdylay_strerror in spdycli 2012-05-11 21:43:37 +09:00
Tatsuhiro Tsujikawa
c1d360469a Return SPDYLAY_ERR_EOF when SSL_read() returned 0 2012-05-11 21:40:51 +09:00
Tatsuhiro Tsujikawa
b0761a3eba Don't print "Fatal" if EOF is received and all requests has been responded. 2012-05-11 00:23:52 +09:00
Tatsuhiro Tsujikawa
aba18f4ba7 Return SPDYLAY_ERR_EOF when SSL/TLS or underlying TCP connection is closed. 2012-05-11 00:22:38 +09:00
Tatsuhiro Tsujikawa
aca4269610 Updated help output of spdycat 2012-05-09 23:41:15 +09:00
Tatsuhiro Tsujikawa
f45e68e05b Added debug output for incoming invalid frames to SpdyServer 2012-05-09 23:35:06 +09:00
Tatsuhiro Tsujikawa
0288bedabb Renamed FRAME_TOO_LARGE as SPDYLAY_FRAME_TOO_LARGE 2012-05-09 23:29:33 +09:00
Tatsuhiro Tsujikawa
21e85281fa Added debug output using on_invalid_ctrl_recv_callback to spdycat. 2012-05-09 23:27:44 +09:00
Tatsuhiro Tsujikawa
d377fe0dc6 Added spdylay_strerror() public API. 2012-05-09 23:01:46 +09:00
Tatsuhiro Tsujikawa
c68a0b5e6d Added spdylay_on_unknown_ctrl_recv_callback.
This callback function is invoked when the unknown frame type is received.
Added debug output using this callback to spdycat.
2012-05-09 22:41:08 +09:00
Tatsuhiro Tsujikawa
171bede1fa Added spdylay_session_on_ctrl_recv_parse_error_callback.
This callback function is invoked when the received frame data could not
be parsed correctly.
Added debug output using this callback to spdycat.
2012-05-09 21:55:21 +09:00
Tatsuhiro Tsujikawa
5d1937927c Added -w, --window-bits option to spdycat.
This option sets the initial window size bits.
2012-05-08 21:47:45 +09:00
Tatsuhiro Tsujikawa
c009b1e65c Call ERR_clear_error() before SSL I/O functions. 2012-05-07 23:22:40 +09:00
Tatsuhiro Tsujikawa
5412ccf129 Renamed spdylay_gzip API. Added test for them. 2012-05-07 22:56:28 +09:00
Jim Morrison
1a384a6000 Move inflate functions to libspdylay from examples. 2012-04-30 12:36:37 -07:00
Tatsuhiro Tsujikawa
bbac4fea8d Added C SPDY client example 2012-04-28 01:20:56 +09:00
Tatsuhiro Tsujikawa
4d8273a052 In event loop condition, only consider spdylay_session_want_{read,write}. 2012-04-28 01:07:36 +09:00
Tatsuhiro Tsujikawa
fa0ab174e1 Inflate response body if content-encoding: gzip is used.
Erase Request from stream2req when stream is closed.
2012-04-24 23:48:05 +09:00
Tatsuhiro Tsujikawa
b8d485d3a2 Added client certificates options (--cert and --key) to spdycat.
Added --verify-client option to spdyd.
2012-04-22 23:04:55 +09:00
Jim Morrison
9638dc8b0a Compress status responses. spdy clients must support gzip decoding. 2012-04-11 13:15:56 -07:00
Jim Morrison
f7d1ca2740 Move timeout checking into the query parameter condition. Copy last_modified date string for file responses. 2012-04-05 11:11:02 -07:00
Jim Morrison
310d88c787 Add a timeout parameter to spdycat and add a crazy parameter to spdyd to test it (or test other clients) 2012-04-04 10:19:00 -07:00
Tatsuhiro Tsujikawa
8251fa1315 Made OpenSSL not mandatory. Don't build examples if OpenSSL is not found.
Spdylay library itself does not depend on OpenSSL. The example programs
in examples directory do. Spdylay library should be built without
OpenSSL.
2012-03-29 02:13:33 +09:00
Tatsuhiro Tsujikawa
c23a86510e Made spdynative noinst 2012-03-27 00:11:47 +09:00
Tatsuhiro Tsujikawa
e9b56ab1f6 Added @DEFS@ to CPPFLAGS/CFLAGS. 2012-03-24 00:07:56 +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
3918d7fa7d spdyd: Send SETTINGS frame after connection is established. 2012-03-10 18:45:38 +09:00
Tatsuhiro Tsujikawa
2568fb95b6 spdycat: Don't include port in host header field if port == 443.
Added accept header field.
Use SPDYLAY_VERSION in user-agent header field.

Some sites do not like 443 is in host header field.
2012-03-09 02:36:55 +09: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
Jim Morrison
541b6e9bce Ensure that date and content length strings are still valid when they are put into the name values list. 2012-03-02 14:30:35 -08:00
Jim Morrison
ac7b87c7a5 Check Return non-zero for failed spdy requests. 2012-03-02 10:59:07 -08: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
Tatsuhiro Tsujikawa
ae0bac563e Added -3, --spdy3 option to spdycat. 2012-02-26 18:13:56 +09:00
Tatsuhiro Tsujikawa
d5cc71c636 Added status_code handling to GOAWAY 2012-02-26 16:26:38 +09:00
Tatsuhiro Tsujikawa
70ebf673fc Added experimental spdy/3 support to spdyd, spdynative and spdycat 2012-02-26 01:31:45 +09:00
Tatsuhiro Tsujikawa
8693874340 Added SPDY/3 flow control. 2012-02-26 00:12:32 +09:00
Jim Morrison
f404142b17 Revert the asynchronous SSL_connect. 2012-02-20 13:15:02 -08: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
e4ad446261 Fixed busy loop: remove marked handler. 2012-02-16 02:51:46 +09:00
Tatsuhiro Tsujikawa
8069575838 Enclose host in [] if host is IPv6 literal address. 2012-02-15 00:14:27 +09:00
Tatsuhiro Tsujikawa
4dc3214222 Added example of node.native style spdy server 2012-02-14 23:54:23 +09:00
Tatsuhiro Tsujikawa
a761d97bed Fixed compiler warning 2012-02-14 23:06:08 +09:00
Tatsuhiro Tsujikawa
b507db7c9b Extracted core server code to SpdyServer.{h,cc} for reuse.
Reorganized source entries in examples/Makefile.am
2012-02-14 21:49:22 +09:00
Jim Morrison
c5f5ee5832 Ignore spdyd 2012-02-14 21:24:58 +09:00
Tatsuhiro Tsujikawa
6f0fb62043 Made session_id_seed global 2012-02-12 00:11:52 +09:00
Tatsuhiro Tsujikawa
f11c2a94b4 Listen both IPv4 and IPv6 sockets. 2012-02-10 02:27:56 +09:00
Tatsuhiro Tsujikawa
6d35f7e470 Added kqueue support in spdyd. 2012-02-10 02:06:46 +09:00
Tatsuhiro Tsujikawa
bc8b7212b2 Added missing source files in dist 2012-02-10 01:11:13 +09:00
Tatsuhiro Tsujikawa
24aff9ac44 Abstract event polling function in EventPoll. 2012-02-10 00:45:33 +09:00
Jim Morrison
dd5c770f32 Check for openssl >= 1.0.1. Conditionally compile spdyd based on having epoll 2012-02-08 11:08:27 -08:00
Tatsuhiro Tsujikawa
fa312caa06 Check cunit and openssl in configure and set substitute variables. 2012-02-08 23:11:06 +09:00
Tatsuhiro Tsujikawa
2c5c60b752 Updated according to spdylay_select_next_protocol change 2012-02-08 21:52:44 +09:00
Tatsuhiro Tsujikawa
6ac7433a5e Added -D option. Fixed segmentation fault when -d is used. Fixed memory leak. 2012-02-08 02:57:19 +09:00
Tatsuhiro Tsujikawa
fd0e91b082 Set TCP_NODELAY in spdycat 2012-02-08 01:54:44 +09:00
Tatsuhiro Tsujikawa
dfce262fe5 Added non-blocking SPDY server spdyd. It only handles static contents. 2012-02-08 01:54:13 +09:00
Tatsuhiro Tsujikawa
3bfe0553d1 Call both Spdylay::recv and Spdylay::send on either POLLIN or POLLOUT 2012-02-08 01:33:55 +09:00
Tatsuhiro Tsujikawa
7f41ec03bd Fixed the bug that port number in URI is not parsed properly. 2012-02-07 02:06:51 +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
db498a7601 Prettify verbose output 2012-02-02 00:37:48 +09:00
Tatsuhiro Tsujikawa
45376c6b11 spdycat: Added host header field to SYN_STREAM. 2012-02-01 21:47:25 +09:00
Tatsuhiro Tsujikawa
42f8ef5f99 Added libcrypto to pkg-config args 2012-02-01 21:42:29 +09:00
Jim Morrison
40db6885b7 Automake-zie the examples directory 2012-01-31 11:10:09 -08:00
Tatsuhiro Tsujikawa
78cd59d1d0 Gather prerequisites of spdycat into $(SPDYCAT_OBJS) 2012-02-01 02:19:40 +09:00
Tatsuhiro Tsujikawa
0236d0d2df Print details for SETTINGS, RST_STREAM, HEADERS. 2012-02-01 01:16:35 +09:00
Tatsuhiro Tsujikawa
4e192493ab Use gettimeofday instead of clock_gettime and use poll instead of epoll for portability. 2012-01-31 22:04:51 +09:00
Tatsuhiro Tsujikawa
d3a3dc5943 Added proper command-line option support using getopt_long.
Now -nvh option works.
2012-01-31 00:46:46 +09:00
Tatsuhiro Tsujikawa
641443f6c5 Added Makefile for examples 2012-01-30 00:35:33 +09:00
Tatsuhiro Tsujikawa
0b57f01009 Rewritten spdycl as spdycat. 2012-01-30 00:34:10 +09:00
Tatsuhiro Tsujikawa
5fdadc4806 Flush after printf(). Added user-agent. Add cond (want_read and want_write) to event-loop 2012-01-28 19:44:42 +09:00
Tatsuhiro Tsujikawa
af4e977d6b Updated according to API changes 2012-01-28 04:30:23 +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
8eea63aa30 Added example.
This example program can connect to remote host given in command-line
via SSL and retrieves given path using SPDY protocol.
To build this program, OpenSSL + NPN support is required.
2012-01-27 01:32:05 +09:00