Commit Graph

82 Commits

Author SHA1 Message Date
Joe Bryan
a10479abd0 refactors proxy reverse listener callback to be clear that it always closes 2018-06-15 14:16:17 -04:00
Joe Bryan
85f8b10ca7 fixes memory leak on proxy reverse connection failure 2018-06-15 14:16:17 -04:00
Joe Bryan
b59bdb217c fixes use-after-free on proxy reverse connection failure 2018-06-15 14:16:17 -04:00
Joe Bryan
8835510aeb refactors proxy server startup to better handle EADDRINUSE 2018-06-15 14:16:17 -04:00
Joe Bryan
5dfb51b1dd updates SNI parsing to not fail on valid ClientHello without SNI 2018-06-15 14:16:17 -04:00
Joe Bryan
55b7b30329 refactors proxy peek parsing, again 2018-06-15 14:16:17 -04:00
Joe Bryan
12da824716 refactors libuv read_cb error handling, adds _proxy_write() 2018-06-15 14:16:17 -04:00
Joe Bryan
84b1dd7628 connection close debugging, TODO comments 2018-06-15 14:16:17 -04:00
Joe Bryan
52503a2add updates proxy to always allocate 4K buffers on socket read 2018-06-15 14:16:17 -04:00
Joe Bryan
ad424fcbda binds proxies on ports 80/443, or 9090/9443 then ascending 2018-06-15 14:16:17 -04:00
Joe Bryan
06259e2d7d adds SNI parser (commented out pending build decision) 2018-06-15 14:16:17 -04:00
Joe Bryan
fb8b24259a refactors proxy peeking to support multiple reads 2018-06-15 14:16:17 -04:00
Joe Bryan
e2565e4b87 refactors proxy peek parsing 2018-06-15 14:16:17 -04:00
Joe Bryan
40f7e683fc refactors proxy listener startup to support multiple 2018-06-15 14:16:17 -04:00
Joe Bryan
7dcf91e689 removes the upstream/downstream read_cb buffer copies 2018-06-15 14:16:17 -04:00
Joe Bryan
040e162176 checks return code on uv_tcp_connect 2018-06-15 14:16:17 -04:00
Joe Bryan
90603f5bbb copies read_cb buffers before writes 2018-06-15 14:16:17 -04:00
Joe Bryan
eeb0536ab9 wires up reverse proxy notification effect %that
works!
2018-06-15 14:16:17 -04:00
Joe Bryan
9c08361cf8 use domain from -H instead of hardcoding urbit.org 2018-06-15 14:16:17 -04:00
Joe Bryan
f9618b1587 adds client for ship-specific reverse proxy, comments throughout 2018-06-15 14:16:17 -04:00
Joe Bryan
4792466ed5 implements reverse listener and "should-proxy" predicate, refactors loopback 2018-06-15 14:16:17 -04:00
Joe Bryan
2eb44fd326 adds http request parser for host header 2018-06-15 14:16:17 -04:00
Joe Bryan
65ac6dd5e0 refactors loopback proxy and connection structs, corrects close/free lifecycle 2018-06-15 14:16:17 -04:00
Joe Bryan
3c24756d28 looks up the correct loopback port by server struct 2018-06-15 14:16:17 -04:00
Joe Bryan
e1b5ab35cd adds proxy listener and connection structs, refactors loopback proxy 2018-06-15 14:16:17 -04:00
Joe Bryan
c4928a7f3b adds initial, leaky tcp loopback proxy 2018-06-15 14:16:17 -04:00
Joe Bryan
ad4f76a431 adds state enum to u3_hreq, ignores attempts to send duplicate http responses 2018-05-04 15:49:44 -04:00
Joe Bryan
2b3554a845 refactors _http_req_respond to use the h2o memory pool and defer cleanup
possibly fixing a use after free
2018-04-25 16:14:59 -04:00
Joe Bryan
0588a3c7fd updates "secure server not started" msg to be friendlier 2018-04-11 13:57:14 -07:00
Joe Bryan
70cb696559 terminates all strings in headers and body buffers 2018-04-10 17:04:21 -07:00
Joe Bryan
a62d59edf0 cleans up http headers, incorporate review feedback 2018-04-10 17:04:21 -07:00
Joseph Bryan
f4e60f604a cleans up server SSL_CTX, saves pointer on u3_Host 2018-03-15 22:55:51 -04:00
Joseph Bryan
234ef5d109 replaces local h2hed struct with updated u3_hhed in http.c 2018-03-14 13:21:15 -04:00
Joseph Bryan
50b06e1ec6 sets Server header to urbit/vere-$VERSION 2018-03-12 21:09:37 -04:00
Joseph Bryan
01bedc86f5 moves openssl init and prng seeding to main.c 2018-03-12 12:19:00 -04:00
Joseph Bryan
04dde536f9 makes pointer sanity-check safe for tls, removes unnecessary malloc 2018-03-12 12:01:29 -04:00
Joseph Bryan
c01609b290 disables automatic chunked transfer-encoding
by setting content-length before start_response
2018-03-08 15:28:47 -05:00
Joseph Bryan
4222bd24fb generalizes _http_rec_fail 2018-03-05 13:40:23 -05:00
Joseph Bryan
0a74b9d272 adds pointer sanity check to struct cast in _http_rec_accept 2018-03-05 13:40:23 -05:00
Joseph Bryan
a3a7bd9f97 switches to stack allocation in _http_vec_from_octs 2018-03-05 13:40:17 -05:00
Joseph Bryan
40a588889c refactor, reorder, rename 2018-03-05 10:36:35 -05:00
Joseph Bryan
159d586e67 writes only successfully started servers to .http.ports 2018-03-05 10:36:35 -05:00
Joseph Bryan
a0b19f125f cleanup 2018-03-05 10:36:35 -05:00
Joseph Bryan
54fcac2b92 asan fix: initialize host before linking config to accept_ctx
and adds hostname(s) TODO
2018-03-05 10:36:34 -05:00
Joseph Bryan
fdafc30ee8 set HTTP response content length 2018-03-05 10:36:34 -05:00
Joseph Bryan
2f5623c3d4 skip starting secure server if no tls 2018-03-05 10:36:34 -05:00
Joseph Bryan
75b027bdd7 makes h2o_globalconf_t per server in u3_http 2018-03-05 10:36:34 -05:00
Joseph Bryan
c7b7a5fb17 refactors _http_respond() 2018-03-05 10:36:34 -05:00
Joseph Bryan
0451ebc81c print unknown request methods (debug only) 2018-03-05 10:36:34 -05:00
Joseph Bryan
d8c16add85 print error on uv_listen failure 2018-03-05 10:36:34 -05:00