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
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