Commit Graph

311 Commits

Author SHA1 Message Date
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
e6b9dbda8d moves u3_pact to vere.h, replacing the unused u3_apac 2018-07-12 22:43:32 -04:00
Joe Bryan
f5867bfad5 fixes memory leak in failed cttp.c address resolution 2018-07-12 22:43:05 -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
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
59a049b170 removes tabs from http.c 2018-06-11 10:41:48 -04:00
Joe Bryan
0f80535867 removes orphaned telnet constants and forward declarations 2018-06-11 10:41:48 -04:00
Keaton Dunsford
41d89f30af Version the bootstrap.urbit.org boot pill URL
This way, between continuity breaches, we can update the old pills,
adding printf's to them that will trigger upon `~zod is not responding`
messages such as urbit/arvo@c83fb6e23e,
telling people to pull the latest Vere. And upon breaches, we
can update these bootstrap links. This is a simple/hacky yet reasonably
effective way to help get more people on the same page as it relates to
handling users running different Veres with breaking changes.
2018-06-08 19:26:29 -07:00
Paul Driver
da051310df Merge branch 'master' into hashboard 2018-06-04 14:15:53 -07:00
Joe Bryan
cfe3779fc0 updates ames to resolve galaxy addresses asynchronously 2018-05-22 15:05:03 -07: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
Paul Driver
002a1d8996 Merge branch 'master' into c-sites 2018-04-30 11:48:53 -07:00
Paul Driver
b7e0dc4651 merge conflict 2018-04-30 11:42:24 -07:00
Joe Bryan
38f9c546c4
Merge pull request #972 from joemfb/ames-f-n
allows imperial addresses in the absence of -N (fix -F)
2018-04-25 14:45:00 -07: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
dcc5eb521d fixes memory leak in ames fuzz-mode canceled requests 2018-04-24 15:28:35 -04:00
Joe Bryan
4466119b2e allows imperial addresses in the absence of -N 2018-04-24 15:27:04 -04:00
Joe Bryan
2a10000a67 fixes improper null-termination in cttp header buffers 2018-04-16 15:14:49 -04:00
Joe Bryan
0588a3c7fd updates "secure server not started" msg to be friendlier 2018-04-11 13:57:14 -07:00
Joe Bryan
3ee0c7605c removes client request debug printf 2018-04-11 12:23:42 -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
Joe Bryan
05339a771e adds extra newline between headers and body 2018-04-10 12:55:44 -07:00
Joe Bryan
b745cb83bc updates cttp.c to allocate header struct and members separately 2018-04-10 12:55:44 -07:00
Joe Bryan
6c36594f6f Merge branch 'master' into libh2o
* master: (124 commits)
  use compile-time assertion to check for unsigned char
  Don't build libuv in travis if it is now submoduled.
  Rebuild the scripts without PKG_CONFIG_PATH hacks.
  Remove manual PKG_CONFIG_PATH configuration.
  Enable fallback libuv bundle
  Bundle libuv.
  adds a cell check for the sample of the +roll gate
  Add missing flags fixing the markdown parser bug #951
  Revert "Merge pull request #952 from eglaysher/revert-meson"
  Revert "Merge pull request #949 from eglaysher/meson-build-clean"
  Revert "The -C flag was added for exactly this case."
  The -C flag was added for exactly this case.
  Take ownership of the submodule repositories.
  Revert "Revert "Merge pull request #941 from frodwith/runtime-overflows""
  Add legacy meson instructions to README
  Fix new meson version check
  Fix legacy meson version detection.
  Universal meson build.
  change overflow check to short
  do the don trick for jam
  ...
2018-04-09 19:49:40 -07:00
Keaton Dunsford
87e28fb787
Merge pull request #953 from eglaysher/reapply-meson
Reapply meson
2018-04-09 19:14:55 -07:00
Joseph Bryan
2caa2bc6bd use compile-time assertion to check for unsigned char 2018-04-09 18:22:48 -07:00
Paul Driver
a61ed7df17 fix compile errors 2018-03-30 11:49:18 -07:00
Elliot Glaysher
0f09810dd7 Revert "Merge pull request #952 from eglaysher/revert-meson"
This reverts commit 9978ad8b72, reversing
changes made to a85369fa1f.
2018-03-20 10:16:16 -07:00
Elliot Glaysher
e6f6315691 Revert "Merge pull request #949 from eglaysher/meson-build-clean"
This reverts commit 9f795b535f, reversing
changes made to d5c7b3b932.
2018-03-19 15:13:19 -07:00
Elliot Glaysher
b9432b4d57
Merge pull request #930 from joemfb/sav-mkdirp
recursively mkdir in u3_walk_save
2018-03-19 14:36:57 -07:00
Elliot Glaysher
9f795b535f
Merge pull request #949 from eglaysher/meson-build-clean
Meson build clean
2018-03-19 11:14:53 -07:00
Joseph Bryan
a23d708dae reorder, rename, refactor, comment 2018-03-15 22:56:05 -04:00
Joseph Bryan
f4e60f604a cleans up server SSL_CTX, saves pointer on u3_Host 2018-03-15 22:55:51 -04:00