diff options
Diffstat (limited to 'testing/web-platform/tests/webtransport/handlers/server-close.py')
-rw-r--r-- | testing/web-platform/tests/webtransport/handlers/server-close.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webtransport/handlers/server-close.py b/testing/web-platform/tests/webtransport/handlers/server-close.py new file mode 100644 index 0000000000..e9d08f483c --- /dev/null +++ b/testing/web-platform/tests/webtransport/handlers/server-close.py @@ -0,0 +1,16 @@ +from typing import Optional +from urllib.parse import urlsplit, parse_qsl + + +def session_established(session): + path: Optional[bytes] = None + for key, value in session.request_headers: + if key == b':path': + path = value + assert path is not None + qs = dict(parse_qsl(urlsplit(path).query)) + code = qs[b'code'] if b'code' in qs else None + reason = qs[b'reason'] if b'reason' in qs else b'' + close_info = None if code is None else (int(code), reason) + + session.close(close_info) |