Commit Graph

256 Commits

Author SHA1 Message Date
Joe Bryan
f0c581160e increases tcp proxy listener timeout to 2 minutes 2018-07-22 00:18:03 -04:00
Joe Bryan
47557a5380 fixes dumb bug in tcp reverse proxy remote address resolution 2018-07-22 00:17:33 -04:00
Joe Bryan
36ae7a5f07 sets the http client request timeout to 2 minutes 2018-07-18 13:52:49 -04:00
Joe Bryan
a08dcf8a19 adds an http request timer to ensure connections are always closed 2018-07-17 12:55:16 -04:00
Joe Bryan
9abf5bfa50 adds (disabled) h2o access log 2018-07-16 16:42:50 -04:00
Joe Bryan
9cf861990f don't leak ship-name in _proxy_ward_connect() 2018-07-16 14:24:29 -04:00
Joe Bryan
0ca3561794 refactors .http.ports write/release (avoid the loom, etc.) 2018-07-15 16:37:15 -04:00
Joe Bryan
2574b865c9 updates SSL_CTX init to support any PEM private key, simplifies error handling 2018-07-14 23:26:42 -04:00
Joe Bryan
11e76024f1 adds u3_wcon (ward candidate conn), refactors ward connection accept and auth 2018-07-14 19:01:52 -04:00
Joe Bryan
68ce42f68c enables ALPN and HTTP2 over TLS 2018-07-13 12:49:06 -04:00
Joe Bryan
92ae8c09c1 increases timeout before server struct, adds explanatory comment 2018-07-13 12:48:43 -04:00
Joe Bryan
a557a11dff closes u3_ward stream and timer sequentially, fixing use-after-free per ASan 2018-07-12 23:43:37 -04:00
Joe Bryan
8b5b5903e6 updates %wise and %that to give and receive the proxy auth nonce 2018-07-10 23:42:49 -04:00
Joe Bryan
fc0c1165b4 implements nonce-baced authentication for u3_ward proxies
with constant nonces, not yet wired to into arvo
2018-07-10 23:42:49 -04:00
Joe Bryan
f5cf585417 refactors uv_close callbacks to avoid cast 2018-07-10 23:42:49 -04:00
Joe Bryan
789bfacf21 calls u3_lo_open() and shut() in _http_rec_accept()
and notes the need in _proxy_ward_start()
2018-07-10 23:42:49 -04:00
Joe Bryan
3499456261 rewrites graceful restart, re-architects u3_hcon and u3_hreq lifecycle 2018-07-10 23:42:40 -04:00
Joe Bryan
3d0fd316f4 frees openssl ctx in _http_serv_free 2018-07-10 13:13:44 -04:00
Joe Bryan
60b0c90122 refactors http config (%form) application 2018-07-10 13:13:44 -04:00
Joe Bryan
18ef4ce52c include ipv4 addresses and hostname (if galaxy) in %eyre %born 2018-07-10 13:13:44 -04:00
Joe Bryan
9660f19184 simplifies casting libh2o connection to get u3 connection 2018-07-10 13:13:44 -04:00
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