Commit Graph

9209 Commits

Author SHA1 Message Date
Maximilian Hils
d32a5d5f33 [sans-io] websockets: fix bugs, 100% test coverage 🎉 2020-12-12 21:24:20 +01:00
Maximilian Hils
e79cc6bc24 [sans-io] websocket: add frame buffer, store messages 2020-12-12 21:24:20 +01:00
Maximilian Hils
a4a0428bc6 [sans-io] handle 101 switching protocols 2020-12-12 21:24:20 +01:00
Maximilian Hils
396673b2b1 [sans-io] HTTP/2: typing fixes 2020-12-12 21:24:20 +01:00
Maximilian Hils
19f8cd0839 [sans-io] add websocket proof-of-concept 2020-12-12 21:24:20 +01:00
Maximilian Hils
222d5cedc8 [sans-io] HTTP/1: Add tests for HTTP -> TCP pipe behavior 2020-12-12 21:24:20 +01:00
Maximilian Hils
ab733b73ca [sans-io] unify HTTP/1 client/server implementations 2020-12-12 21:24:20 +01:00
Maximilian Hils
7afa290eff [sans-io] tcp: add hook docstrings 2020-12-12 21:24:20 +01:00
Maximilian Hils
4f0cbec308 [sans-io] http: emit error hook when killed 2020-12-12 21:24:20 +01:00
Maximilian Hils
7087539c4d [sans-io] Server: persist chosen cipher 2020-12-12 21:24:20 +01:00
Maximilian Hils
d55055d022 [sans-io] fix serialization, fixup client replay 2020-12-12 21:24:20 +01:00
Maximilian Hils
011766b10d [sans-io] don't proxy HTTP/1 -> HTTP/2 2020-12-12 21:24:20 +01:00
Maximilian Hils
5e9f342c45 [sans-io] fix ignore/allow options 2020-12-12 21:24:20 +01:00
Maximilian Hils
848e7cfaec [sans-io] simplify LayerStack 2020-12-12 21:24:20 +01:00
Maximilian Hils
41f69749f2 [sans-io] enable "Secure Web Proxy" mode 2020-12-12 21:24:20 +01:00
Maximilian Hils
1d4bdeb68d [sans-io] HTTP/2: enable END_STREAM for HEADERS
Akamai really doesn't like empty DATA frames with END_STREAM set,
so we mitigate this by indicating end stream in the MessageHeaders events.
2020-12-12 21:24:20 +01:00
Maximilian Hils
3c061b7863 [sans-io] fix playbook SendData merging 2020-12-12 21:24:20 +01:00
Maximilian Hils
1112135920 [sans-io] HTTP/2: respect max_concurrency_limit 2020-12-12 21:24:20 +01:00
Maximilian Hils
41ed038bb9 [sans-io] do not rely on existence of h2 streams 2020-12-12 21:24:20 +01:00
Maximilian Hils
0d42499799 [sans-io] fix nextlayer logic 2020-12-12 21:24:20 +01:00
Maximilian Hils
485c8eb3e9 [sans-io] fix HTTP/2 -> HTTP/1 interop, limit max connections / server / client 2020-12-12 21:24:20 +01:00
Maximilian Hils
32208b14eb [sans-io] fix HTTP/2 stream concurrency 2020-12-12 21:24:20 +01:00
Maximilian Hils
553f102d6e [sans-io] playbook: fix multiple placeholders of same type 2020-12-12 21:24:20 +01:00
Maximilian Hils
9251f7820a [sans-io] fix HTTP/2 client aborts 2020-12-12 21:24:20 +01:00
Maximilian Hils
3bffcf5e2f [sans-io] fix tcp half close behavior 2020-12-12 21:24:20 +01:00
Maximilian Hils
9f89c23a52 [sans-io] use asyncio_utils 2020-12-12 21:24:20 +01:00
Maximilian Hils
5bf07b2176 [sans-io] clientplayback: don't catch cancellederror 2020-12-12 21:24:20 +01:00
Maximilian Hils
b5f59a1297 [sans-io] test NextLayer behavior on connection close 2020-12-12 21:24:20 +01:00
Maximilian Hils
65870b729f [sans-io] improve tcp half close behavior 2020-12-12 21:24:20 +01:00
Maximilian Hils
c639fafd64 [sans-io] more testing, more bugfixes! 2020-12-12 21:24:20 +01:00
Maximilian Hils
38f006eb9a [sans-io] more http testing, more bugfixes! 2020-12-12 21:24:20 +01:00
Maximilian Hils
fdcdb28251 [sans-io] final fixes to pass h2spec 2020-12-12 21:24:20 +01:00
Maximilian Hils
25999ba9d4 [sans-io] http bugfixes! 2020-12-12 21:24:20 +01:00
Maximilian Hils
74f94fe5a3 disable asyncio debug mode, fix tests 2020-12-12 21:24:20 +01:00
Maximilian Hils
05968a29bb [sans-io] implement sans-io based replay 2020-12-12 21:24:19 +01:00
Maximilian Hils
895466bc59 [sans-io] enable sans-io by default 2020-12-12 21:24:19 +01:00
Maximilian Hils
238ea20884 [sans-io] make context.Connections serializable 2020-12-12 21:24:19 +01:00
Maximilian Hils
921594cbc0 [sans-io] add HTTP end timestamps 2020-12-12 21:24:19 +01:00
Maximilian Hils
7f1f072bd3 [sans-io] add timestamp attributes 2020-12-12 21:24:19 +01:00
Maximilian Hils
919d1277fd [sans-io] implement client/server (dis)connect events
semantic are slightly changed, so we change names as well.
2020-12-12 21:24:19 +01:00
Maximilian Hils
3fdbff3faa [sans-io] tlsconfig: add tests 2020-12-12 21:24:19 +01:00
Maximilian Hils
0234a44c84 [sans-io] tlsconfig: generate proper certificates 2020-12-12 21:24:19 +01:00
Maximilian Hils
decd2b8c80 [sans-io] add minimal benchmarks 2020-12-12 21:24:19 +01:00
Maximilian Hils
dd723c733e [sans-io] various fixes 2020-12-12 21:24:19 +01:00
Maximilian Hils
75b7b743c4 [sans-io] fix tls tests 2020-12-12 21:24:19 +01:00
Maximilian Hils
97285512f1 [sans-io] rely on kill message instead of subclass 2020-12-12 21:24:19 +01:00
Maximilian Hils
40fc542cf6 [sans-io] add flow killing, tests++ 2020-12-12 21:24:19 +01:00
Maximilian Hils
34d96da876 [sans-io] extend HTTP/2 fuzzing, fix found bugs 2020-12-12 21:24:19 +01:00
Maximilian Hils
0549d50a47 [sans-io] add HTTP/2 fuzzing, various other fixes 2020-12-12 21:24:19 +01:00
Maximilian Hils
aadc7538f1 [sans-io] typing++ 2020-12-12 21:24:19 +01:00