1
0
mirror of https://github.com/moparisthebest/spdylay synced 2024-12-22 07:38:52 -05:00
Commit Graph

194 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa
e5de9c9708 Issue RST_STREAM if the remote end of tunnel is closed. 2012-07-11 19:48:07 +09:00
Tatsuhiro Tsujikawa
a143133d43 Use http_parser for tunneling connection transparently 2012-07-11 18:46:00 +09:00
Tatsuhiro Tsujikawa
12ab6863c4 Use http-parser instead of htparse 2012-07-11 18:32:04 +09:00
Tatsuhiro Tsujikawa
9fd49121ee Added http-parser 2012-07-11 18:31:32 +09:00
Tatsuhiro Tsujikawa
2c5f40b175 Added SPDY proxy mode.
To enable SPDY proxy, use --spdy-proxy option.  At time of this
writing, the only browser which supports SSL/SPDY proxy is Chrome.

Removed Location and Host header field rewrite.
2012-07-11 16:20:16 +09:00
Tatsuhiro Tsujikawa
db8a62c0d7 htparse: enhancements and bug fixes
CONNECT method supported. Fixed _str8cmp and _str9cmp comparison.
Support no content-length case.  Fixed hook_uri_run args. Run
hook_on_hdrs_complete if no header field is present. Supported empty
header value. Case insensitive match for particular header values
(e.g., keep-alive).
2012-07-11 16:02:08 +09:00
Tatsuhiro Tsujikawa
fe5dfe533f Updated htparse 2012-07-01 18:37:12 +09:00
Piotr Sikora
ebfc313a26 spdycat: add support for Server Name Indication (SNI).
Signed-off-by: Piotr Sikora <piotr.sikora@frickle.com>
2012-06-25 15:05:12 +00:00
Tatsuhiro Tsujikawa
27dd0b7405 Don't forward keep-alive, connection and proxy-connection header fields 2012-06-15 20:56:30 +09:00
Tatsuhiro Tsujikawa
9d84db230d Enclose downstream IPv6 numeric address in hostport with square blackets 2012-06-14 23:01:47 +09:00
Tatsuhiro Tsujikawa
14d1a5a547 Reverted accidental chagnes in spdycat.cc 2012-06-14 20:07:00 +09:00
Tatsuhiro Tsujikawa
9893b7e2b0 Modify Location header field if redirect URI refers to downstream 2012-06-13 00:08:28 +09:00
Tatsuhiro Tsujikawa
eb9458bba9 Adjust read/write timeout depending on the request/response state 2012-06-12 23:02:01 +09:00
Tatsuhiro Tsujikawa
22f5bb3ebb Added implementation note for deletion of downstream 2012-06-12 22:43:28 +09:00
Tatsuhiro Tsujikawa
6702d34651 Enable EV_READ for downstream connection.
Removed Downstream::force_resume_read() calls.  Added missing delete
downstream in shrpx_spdy_upstream.cc.  In on_stream_close_callback,
delete downstream even if response state != MSG_COMPLETE. This may
cause segmentaiton fault.
2012-06-12 21:56:41 +09:00
Tatsuhiro Tsujikawa
0ffa4bcb46 Added missing shrpx.h and shrpx_error.h to shrpx_SOURCES 2012-06-11 23:36:02 +09:00
Tatsuhiro Tsujikawa
7b8768bd3a Fixed compile error with --enable-maintainer-mode 2012-06-11 23:12:23 +09:00
Tatsuhiro Tsujikawa
d8637958dd Added missing \r\n after chunk 2012-06-10 02:51:42 +09:00
Tatsuhiro Tsujikawa
1fa784c709 Handle Expect: 100-continue 2012-06-10 02:33:34 +09:00
Tatsuhiro Tsujikawa
e871768d84 Disable read for downstream by default to avoid timeout before request 2012-06-10 01:46:33 +09:00
Tatsuhiro Tsujikawa
c29dd0b80f Added SPDY/3 flow control 2012-06-10 01:36:30 +09:00
Tatsuhiro Tsujikawa
c2785955ca HTTPS: Flow control in request chain 2012-06-10 00:50:50 +09:00
Tatsuhiro Tsujikawa
bff22fd1e9 Check upstream header length only in Downstream::INITIAL state. 2012-06-10 00:30:44 +09:00
Tatsuhiro Tsujikawa
9d19e2bfe9 Rewrite connection pooling 2012-06-09 23:14:00 +09:00
Tatsuhiro Tsujikawa
183cce1707 Use bitmask instead of std::vector 2012-06-08 22:52:08 +09:00
Tatsuhiro Tsujikawa
6df709b441 Added -pthread to AM_LDFLAGS for examples 2012-06-08 22:44:09 +09:00
Tatsuhiro Tsujikawa
f2a6b3c9d6 Set OpenSSL locking_function. 2012-06-08 22:41:24 +09:00
Tatsuhiro Tsujikawa
1199db690e gcc-4.7 fix 2012-06-08 21:40:03 +09:00
Tatsuhiro Tsujikawa
5ea6ea476e Rewritten to_uint32 using shift 2012-06-08 02:10:02 +09:00
Tatsuhiro Tsujikawa
01c6f7af4c Code cleanup 2012-06-08 00:39:55 +09:00
Tatsuhiro Tsujikawa
17025a96d9 SPDY: Use keep-alive connection to downstream server 2012-06-08 00:36:19 +09:00
Tatsuhiro Tsujikawa
695dd50612 HTTPS: Keep-Alive connection to downstream servers.
Reset status = 0 when entering s_status state in htparse_run
2012-06-07 23:42:11 +09:00
Tatsuhiro Tsujikawa
9303cca430 Send back Connection: keep-alive for the request with http/1.0 keep-alive 2012-06-07 22:40:42 +09:00
Tatsuhiro Tsujikawa
7319620160 Added SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION and TCP_NODELAY 2012-06-07 22:39:57 +09:00
Tatsuhiro Tsujikawa
3a39745784 Add via header field to SPDY upstream response 2012-06-07 02:29:00 +09:00
Tatsuhiro Tsujikawa
c240368ee5 Change severity level of getaddrinfo failure to INFO 2012-06-07 02:16:30 +09:00
Tatsuhiro Tsujikawa
5f5fb18b77 Option value fixes.
Set -n default value to 1. Show missing default values.  Use -c value
in SPDY session.
2012-06-07 02:09:59 +09:00
Tatsuhiro Tsujikawa
673f9c7df0 Merge branch 'rproxy' 2012-06-07 01:59:20 +09:00
Tatsuhiro Tsujikawa
18f557f743 Conditional compilation with libevent-openssl
Require Libevent-openssl 2.0.8 because we use
evconnlistener_set_error_cb().
2012-06-07 01:43:02 +09:00
Tatsuhiro Tsujikawa
b189e291a9 Added htparse library
htparse is written by Mark Ellzey and part of libevhtp.
https://github.com/ellzey/libevhtp

The included code are modified by me for bugfixes.
See my fork:
https://github.com/tatsuhiro-t/libevhtp/tree/master/htparse
2012-06-07 01:43:02 +09:00
Tatsuhiro Tsujikawa
e37ec7b765 Append Via header field. Don't modify Server header field. 2012-06-07 01:43:02 +09:00
Tatsuhiro Tsujikawa
908ec2e695 Made -D option work. Get private key and certificate file from cmd-line 2012-06-07 01:43:02 +09:00
Tatsuhiro Tsujikawa
8e0a1c91a3 Added command-line options 2012-06-07 01:43:02 +09:00
Tatsuhiro Tsujikawa
8da4938031 Listen both on IPv6 and IPv4 if possible 2012-06-07 01:43:02 +09:00
Tatsuhiro Tsujikawa
28ed887463 Don't sleep. Just log the error 2012-06-06 21:44:08 +09:00
Tatsuhiro Tsujikawa
faee23a925 Fixed assertion failure. Resume downstream read on SPDY stream close. 2012-06-06 21:39:55 +09:00
Tatsuhiro Tsujikawa
4ac689526b Don't modify user-agent 2012-06-06 21:11:54 +09:00
Tatsuhiro Tsujikawa
ac84b68189 Enable SSL partial write 2012-06-06 21:10:13 +09:00
Tatsuhiro Tsujikawa
117a39d35b Zeroed wev 2012-06-06 02:30:20 +09:00
Tatsuhiro Tsujikawa
71a3a70c02 Handle error when fd runs out
The default log level is now WARNING.
2012-06-06 02:23:07 +09:00
Tatsuhiro Tsujikawa
8f1c49e75c Added multi thread support 2012-06-06 01:26:04 +09:00
Tatsuhiro Tsujikawa
c0b564abe4 Tidied up 2012-06-05 22:55:19 +09:00
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