(data: bytes)
| 56 | |
| 57 | |
| 58 | def decode_frames(data: bytes) -> list[hyperframe.frame.Frame]: |
| 59 | # swallow preamble |
| 60 | if data.startswith(b"PRI * HTTP/2.0"): |
| 61 | data = data[24:] |
| 62 | frames = [] |
| 63 | while data: |
| 64 | f, length = hyperframe.frame.Frame.parse_frame_header(data[:9]) |
| 65 | f.parse_body(memoryview(data[9 : 9 + length])) |
| 66 | frames.append(f) |
| 67 | data = data[9 + length :] |
| 68 | return frames |
| 69 | |
| 70 | |
| 71 | def start_h2_client(tctx: Context, keepalive: int = 0) -> tuple[Playbook, FrameFactory]: |
no test coverage detected
searching dependent graphs…