MCPcopy
hub / github.com/mitmproxy/mitmproxy / Frame

Class Frame

mitmproxy/contentviews/_view_http3.py:19–52  ·  view source on GitHub ↗

Representation of an HTTP/3 frame.

Source from the content-addressed store, hash-verified

17
18@dataclass(frozen=True)
19class Frame:
20 """Representation of an HTTP/3 frame."""
21
22 type: int
23 data: bytes
24
25 def pretty(self) -> str:
26 frame_name = f"0x{self.type:x} Frame"
27 if self.type == 0:
28 frame_name = "DATA Frame"
29 elif self.type == 1:
30 try:
31 hdrs = pylsqpack.Decoder(4096, 16).feed_header(0, self.data)[1]
32 return f"HEADERS Frame\n" + "\n".join(
33 f"{k.decode(errors='backslashreplace')}: {v.decode(errors='backslashreplace')}"
34 for k, v in hdrs
35 )
36 except Exception as e:
37 frame_name = f"HEADERS Frame (error: {e})"
38 elif self.type == 4:
39 settings = []
40 try:
41 s = parse_settings(self.data)
42 except Exception as e:
43 frame_name = f"SETTINGS Frame (error: {e})"
44 else:
45 for k, v in s.items():
46 try:
47 key = Setting(k).name
48 except ValueError:
49 key = f"0x{k:x}"
50 settings.append(f"{key}: 0x{v:x}")
51 return "SETTINGS Frame\n" + "\n".join(settings)
52 return f"{frame_name}\n" + hex_dump.prettify(self.data, Metadata())
53
54
55@dataclass(frozen=True)

Callers 1

prettifyMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…