Commit Graph

9146 Commits

Author SHA1 Message Date
Maximilian Hils
549eb8df4b [sans-io] upstream proxy tests and fixes 2020-12-12 21:24:19 +01:00
Maximilian Hils
605da3afb6 [sans-io] refactor TLS layer to be a tunnel 2020-12-12 21:24:19 +01:00
Maximilian Hils
da02f037cf [sans-io] add http upstream mode prototype 2020-12-12 21:24:19 +01:00
Maximilian Hils
a30a6758f3 [sans-io] fixes, fixes, fixes 2020-12-12 21:24:18 +01:00
Maximilian Hils
b2060356b6 [sans-io] wip: tls establishment semantics 2020-12-12 21:24:18 +01:00
Maximilian Hils
7efe27be74 [sans-io] refactor 2020-12-12 21:24:18 +01:00
Maximilian Hils
0740c673bd [sans-io] implement http streaming, refine error handling 2020-12-12 21:24:18 +01:00
Maximilian Hils
5671012163 [sans-io] make hooks explicit 2020-12-12 21:24:18 +01:00
Maximilian Hils
7ea17b859c [sans-io] remove old layers 2020-12-12 21:24:18 +01:00
Maximilian Hils
03801aecb2 [sans-io] split http layer into smaller modules 2020-12-12 21:24:18 +01:00
Maximilian Hils
9e6548e581 [sans-io] tls: handle untrusted mitmproxy certs 2020-12-12 21:24:18 +01:00
Maximilian Hils
b075b7fc15 [sans-io] tls: handle invalid clienthellos 2020-12-12 21:24:18 +01:00
Maximilian Hils
6cf0bec912 [sans-io] tls: various improvements 2020-12-12 21:24:18 +01:00
Maximilian Hils
09b6257de0 [sans-io] tls tests++ 2020-12-12 21:24:18 +01:00
Maximilian Hils
7fbe8cece7 [sans-io] tls: test alpn 2020-12-12 21:24:18 +01:00
Maximilian Hils
6ee7802bf1 [sans-io] http tests++ 2020-12-12 21:24:18 +01:00
Maximilian Hils
1c80dfe17f [sans-io] tls layer++ 2020-12-12 21:24:18 +01:00
Maximilian Hils
0c04638d8d [sans-io] improve next layer heuristics 2020-12-12 21:24:18 +01:00
Maximilian Hils
105cac231d [sans-io] register tlsconfig addon 2020-12-12 21:24:18 +01:00
Maximilian Hils
2736c9c705 [sans-io] remove old implementations 2020-12-12 21:24:18 +01:00
Maximilian Hils
84287f928c [sans-io] improve testing story 2020-12-12 21:24:18 +01:00
Maximilian Hils
e0eb77a794 [sans-io] add transparent proxy, improve testing 2020-12-12 21:24:18 +01:00
Maximilian Hils
a4803cfaae [sans-io] compatibility adjustments 2020-12-12 21:24:18 +01:00
Maximilian Hils
fbe1d73eab [sans-io] add timeout watchdog to close lingering tcp streams 2020-12-12 21:24:18 +01:00
Maximilian Hils
549e41ee40 [sans-io] tls: handle multiple servers 2020-12-12 21:24:18 +01:00
Maximilian Hils
ffb3782618 [sans-io] http implementation++ 2020-12-12 21:24:18 +01:00
Maximilian Hils
87a4d3efdb [sans-io] http implementation++ 2020-12-12 21:24:18 +01:00
Maximilian Hils
6e1e999c3d [sans-io] various http and tls fixes 2020-12-12 21:24:18 +01:00
Maximilian Hils
16abce77ea [sans-io] better represent half-closed connections 2020-12-12 21:24:18 +01:00
Maximilian Hils
9f075fbbbc [sans-io] move old implementations out of the way 2020-12-12 21:24:18 +01:00
Maximilian Hils
c9fa5b68f4 [sans-io] rewrite TLS layer, handle CONNECT 2020-12-12 21:24:18 +01:00
Maximilian Hils
7fb949f8bf [sans-io] make http event queue more flexible 2020-12-12 21:24:17 +01:00
Maximilian Hils
a7a0143ef2 [sans-io] groom new http implementation 2020-12-12 21:24:17 +01:00
Maximilian Hils
2f4e13c36c [sans-io] more http experiments 2020-12-12 21:24:17 +01:00
Maximilian Hils
70fb64b1db [sans-io] rewrite proxy io buffer 2020-12-12 21:24:17 +01:00
Maximilian Hils
f76b751661 [sans-io] fix NextLayer race condition 2020-12-12 21:24:17 +01:00
Maximilian Hils
71dc89c3c2 [sans-io] add new HTTP/1 and HTTP/2 implementation 2020-12-12 21:24:17 +01:00
Thomas Kriechbaumer
676799f874 [sans-io] fix TLS SNI 2020-12-12 21:24:17 +01:00
Maximilian Hils
b60699ae7c [sans-io] minor http fixes 2020-12-12 21:24:17 +01:00
Maximilian Hils
382c5587ef [sans-io] tls fixes 2020-12-12 21:24:17 +01:00
Maximilian Hils
1726f6ade8 [sans-io] glue layer: use platform-agnostic socketpair implementation 2020-12-12 21:24:17 +01:00
Maximilian Hils
ad0ec5d318 [sans-io] experiment with stack matching 2020-12-12 21:24:17 +01:00
Thomas Kriechbaumer
bc20b77c48 refactor websockets 2020-12-12 21:24:17 +01:00
Maximilian Hils
34f3573be5 [sans-io] glue layer: fix tls 2020-12-12 21:24:17 +01:00
Maximilian Hils
3dd1c5a16d [sans-io] add glue layer that connects to existing proxy stack 2020-12-12 21:24:17 +01:00
Maximilian Hils
a860fe4a4b [sans-io] minor test improvements 2020-12-12 21:24:17 +01:00
Maximilian Hils
8938aec2c0 [sans-io] adjust tls tests 2020-12-12 21:24:17 +01:00
Maximilian Hils
25373672c5 [sans-io] move top-layer determination to next layer addon 2020-12-12 21:24:17 +01:00
Maximilian Hils
467dc81d19 [sans-io] adapt to asyncio changes in core 2020-12-12 21:24:17 +01:00
Maximilian Hils
8f3db90def [sans-io] split tls layer into client and server layers
this drastically reduces the complexity of the TLS code and
makes it easier to implement the remaining bits.
2020-12-12 21:24:17 +01:00