Commit Graph

2831 Commits

Author SHA1 Message Date
Joe Bryan
e665912fcf doubly-links http connections and requests 2018-07-10 13:13:44 -04:00
Joe Bryan
dab9c9d850 fixes linking bugs in doubly-linked u3_creq 2018-07-10 13:13:44 -04:00
Joe Bryan
107c417a82 implements link/unlink for proxy structs, improves resource cleanup 2018-07-10 13:13:44 -04:00
Joe Bryan
fab9308014 sends http/s ports to eyre (%live) 2018-07-10 13:13:44 -04:00
Joe Bryan
5a444d8849 wires up http config event (%form)
only starts servers on recv config
2018-07-10 13:13:44 -04:00
Joe Bryan
2a9384738a always start proxies on fake ships 2018-07-10 13:13:44 -04:00
Joe Bryan
580cdca96c initialize TLS from %eyre config (%form) 2018-07-10 13:13:44 -04:00
Joe Bryan
5134d2b198 free hard-restart timer more safely 2018-06-20 23:39:20 -04:00
Joe Bryan
28d9c769cd terrible horrible graceful http restarts 2018-06-20 23:39:20 -04:00
Joe Bryan
f4c90aa7bc adds proxy structs to vere.h, backlinks to u3_http 2018-06-20 23:39:20 -04:00
Joe Bryan
318b1e8d3e WIP start servers/proxies from config effect 2018-06-20 23:39:20 -04:00
Joe Bryan
9ff2c86a2b adds static libsni (extracted from sniproxy) dependency 2018-06-20 23:39:20 -04:00
Joe Bryan
8c14770e98 renames u3_proxy_conn to u3_pcon, refactors relevant functions 2018-06-20 23:39:20 -04:00
Joe Bryan
6363fc4e04 renames u3_proxy_client to u3_warc, refactors relevant functions 2018-06-20 23:39:20 -04:00
Joe Bryan
30f8d6829c adds expiration timer for ward listener 2018-06-20 23:39:20 -04:00
Joe Bryan
af3c687ff8 cleans up u3_prox member comments 2018-06-20 23:39:20 -04:00
Joe Bryan
5027f53b24 renames u3_proxy_reverse to u3_ward, refactors relevant functions 2018-06-20 23:39:15 -04:00
Joe Bryan
c312ff0427 renames u3_proxy_listener to u3_prox, renames relevant functions 2018-06-15 14:16:17 -04:00
Joe Bryan
cbe05913a1 renames loopback and duplex functions, refactors _proxy_write 2018-06-15 14:16:17 -04:00
Joe Bryan
81cf3867d0 checks types in u3_http_ef_that, calculates length for host snprintf 2018-06-15 14:16:17 -04:00
Joe Bryan
ed913d859a prevents length-extension attack on Host/SNI matching 2018-06-15 14:16:17 -04:00
Joe Bryan
378d707c78 null-terminates (and strips port from) Host header 2018-06-15 14:16:17 -04:00
Joe Bryan
03d6469e5f cleans up error handling on proxy reverse listener failures 2018-06-15 14:16:17 -04:00
Joe Bryan
61b8a20b42 adds src tagged union to u3_proxy_conn, refactors connection lifecycle 2018-06-15 14:16:17 -04:00
Joe Bryan
bf041ef80d fixes overly-complicated loopback proxy connect logic 2018-06-15 14:16:17 -04:00
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