Commit Graph

235 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa 0be5ac6ffb spdycat: use locale-free strieq instead strcasecmp 2012-08-21 23:22:33 +09:00
Tatsuhiro Tsujikawa cdded94305 spdycat: wrap line longer than 79 chars 2012-08-21 22:02:35 +09:00
Tatsuhiro Tsujikawa ccf225641e spdycat: disallow empty header name with -H 2012-08-21 21:39:33 +09:00
Stephen Ludin 2266b102e3 Adding arbitrary headers form the command line 2012-08-21 21:28:06 +09:00
Tatsuhiro Tsujikawa a69b61c40c shrpx: add --ciphers option to specify allowed cipher list 2012-08-20 21:50:03 +09:00
Tatsuhiro Tsujikawa fce4be9555 shrpx: Change default values of -f and -b option
-f now defaults to 0.0.0.0,3000. -b now defaults to 127.0.0.1,80.
2012-08-03 22:20:59 +09:00
Tatsuhiro Tsujikawa 0b3eca7d40 shrpx: Fix netbsd compile warning 2012-08-02 02:07:51 +09:00
Tatsuhiro Tsujikawa fd9f5991f5 shrpx: Fill initial values for flags 2012-08-02 01:32:33 +09:00
Tatsuhiro Tsujikawa 4623413a99 shrpx: Added --backlog option 2012-08-02 01:28:59 +09:00
Tatsuhiro Tsujikawa 0c10528ca3 shrpx: Add syslog support 2012-08-02 01:20:18 +09:00
Tatsuhiro Tsujikawa 7962c1bf6c shrpx: drop root priviledgs after loading private key 2012-08-02 00:29:37 +09:00
Tatsuhiro Tsujikawa 75c9840644 shrpx:: Use LOG() instead of std::cerr 2012-08-02 00:26:24 +09:00
Tatsuhiro Tsujikawa 1dd61d5973 shrpx: Support configuration file
By default, configuration file is /etc/shrpx/shrpx.conf.  It can be
overridden using --conf option. See shrpx.conf.sample to know how to
write shrpx.conf. The configurations given in shrpx.conf will be
overridden by the options specified in cmmand-line.
2012-08-02 00:06:41 +09:00
Tatsuhiro Tsujikawa f3587e1591 shrpx: Added --pid-file and --user option
--pid-file option saves PID to the specified file.  user option is
--used to drop root privileges.
2012-08-01 01:55:31 +09:00
Tatsuhiro Tsujikawa 05e6d527b1 Fix compile error on netbsd
Include config.h from sources under examples.  Added kevent.udata type
check.
2012-07-27 22:11:13 +09:00
Tatsuhiro Tsujikawa 51c4f4f5b0 shrpx: Added --frontend-spdy-window-bits option 2012-07-26 23:18:37 +09:00
Tatsuhiro Tsujikawa f89112b5e9 shrpx: Added --backend-keep-alive-timeout option 2012-07-26 23:08:51 +09:00
Tatsuhiro Tsujikawa 17802de7f7 spdyd: Use SSL_CTX_use_certificate_chain_file 2012-07-26 21:46:05 +09:00
Tatsuhiro Tsujikawa 24453cf0bd Don't add X-Forwarded-Spdy in SPDY proxy mode 2012-07-24 00:08:12 +09:00
Tatsuhiro Tsujikawa 75f93d8333 shrpx: Check spdylay_session_want_{read,write} 2012-07-19 01:59:55 +09:00
Tatsuhiro Tsujikawa 4bc200f9dc Added simple accesslog 2012-07-18 01:08:05 +09:00
Tatsuhiro Tsujikawa b7335a949f shrpx: Log stream id for spdy connection 2012-07-18 00:16:52 +09:00
Tatsuhiro Tsujikawa c7fe718dcf Added read/write timeout options for both upstream and downstream 2012-07-18 00:13:11 +09:00
Tatsuhiro Tsujikawa f10848febd shrpx: Handle the case when evbuffer_add() returned -1 2012-07-17 00:12:31 +09:00
Tatsuhiro Tsujikawa a95981f3da shrpx: Check the fatal error inside downstream http-parser callback 2012-07-16 23:55:08 +09:00
Tatsuhiro Tsujikawa f56cfc920e shrpx: fixed read/write timeouts of upstream are interchanged. 2012-07-16 23:48:02 +09:00
Tatsuhiro Tsujikawa 6fb76831c0 shrpx: Increased default downstream timeout to 60s 2012-07-16 23:43:43 +09:00
Tatsuhiro Tsujikawa 0f5a37fa2a shrpx: Added error handling when error_reply() failed 2012-07-16 23:29:48 +09:00
Tatsuhiro Tsujikawa e817995063 shrpx: Log fatal error in spdy upstream 2012-07-16 23:03:07 +09:00
Tatsuhiro Tsujikawa 2afc50bf49 shrpx: Specify long enough timeout to emulate removing timeout
It seems that specifying NULL to bufferevent_set_timeouts() does not
remove timeout, which is described in bufferevent book (but it is not
described in header). As a workaround, we specify long enough timeout
to emulate removing timeout.
2012-07-16 18:42:42 +09:00
Tatsuhiro Tsujikawa d36f9f1c5b shrpx: Load certificate chain from file 2012-07-16 18:31:52 +09:00
Tatsuhiro Tsujikawa 06eac680e8 Prefer SPDY/2 for spdy proxy connection
Chrome SPDY/3 flow control does not work well in spdy proxy
connection.
2012-07-15 21:39:19 +09:00
Tatsuhiro Tsujikawa 7f2b9ae75d Ensure that upstream->send() is called in callback.
Log error string in case of network error
2012-07-15 21:15:28 +09:00
Tatsuhiro Tsujikawa 317ad6f4ad Fixed free() for new. Any 2xx status means success in CONNECT response 2012-07-15 03:32:05 +09:00
Tatsuhiro Tsujikawa 7465289919 Enable SSL/TLS session caching. Share SSL_CTX access workers. 2012-07-14 23:24:03 +09:00
Tatsuhiro Tsujikawa 06ed17ff26 shrpx: fixed timeout change is not triggered when tunneling.
For upstream timeout, it seems OpenSSL backed bufferevent does not
remove timeout. Set large timeout as a workaround.
2012-07-14 21:47:28 +09:00
Tatsuhiro Tsujikawa 17699b1fdf shrpx: Create absoluteURI only when path starts with '/' 2012-07-14 17:36:55 +09:00
Tatsuhiro Tsujikawa 3fc0e4dd6b spdycat: Use TLSv1_client_method
Jetty refuses connection if SSLv23_client_method is used.
2012-07-13 23:05:24 +09:00
Tatsuhiro Tsujikawa a47feb22cb Don't prepend scheme and host to path if path starts with scheme.
This is just a sanity check in caes of path contains absoluteURI.
2012-07-12 23:44:30 +09:00
Tatsuhiro Tsujikawa e5249538a6 Added --add-x-forwarded-for option.
This option append X-Forwarded-For header field to the downstream
request.
2012-07-12 23:39:11 +09:00
Tatsuhiro Tsujikawa 63adaad93a Updated usage 2012-07-11 22:13:36 +09:00
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