@@ -611,6 +611,7 @@ def _read_http_data(self, schema: 'Schema_DataFrame', *,
611611 reserved = header .stream ['reserved' ],
612612 sid = header .stream ['sid' ],
613613 data = schema .data ,
614+ padding = schema .padding if flag .PADDED else b'' ,
614615 )
615616 return data
616617
@@ -669,6 +670,7 @@ def _read_http_headers(self, schema: 'Schema_HeadersFrame', *,
669670 stream_dependency = schema .stream_dep ['sid' ] if flag .PRIORITY else 0 ,
670671 weight = (schema .weight + 1 ) if flag .PRIORITY else 0 ,
671672 fragment = schema .fragment ,
673+ padding = schema .padding if flag .PADDED else b'' ,
672674 )
673675 return data
674676
@@ -878,6 +880,7 @@ def _read_http_push_promise(self, schema: 'Schema_PushPromiseFrame', *,
878880 promised_reserved = schema .stream ['reserved' ],
879881 promised_sid = schema .stream ['sid' ],
880882 fragment = schema .fragment ,
883+ padding = schema .padding if flag .PADDED else b'' ,
881884 )
882885
883886 return data
@@ -1088,6 +1091,7 @@ def _make_http_data(self, frame: 'Optional[Data_DataFrame]' = None, *,
10881091 padded : 'bool' = False ,
10891092 pad_len : 'int' = 0 ,
10901093 data : 'bytes' = b'' ,
1094+ padding : 'bytes' = b'' ,
10911095 ** kwargs : 'Any' ) -> 'tuple[Schema_DataFrame, Flags]' :
10921096 """Make HTTP/2 ``DATA`` frame.
10931097
@@ -1097,6 +1101,8 @@ def _make_http_data(self, frame: 'Optional[Data_DataFrame]' = None, *,
10971101 padded: Padded flag, implied by a non-zero ``pad_len``.
10981102 pad_len: Padding length.
10991103 data: Frame data.
1104+ padding: Padding octets, written as given if exactly ``pad_len``
1105+ octets and as zeros otherwise.
11001106 **kwargs: Arbitrary keyword arguments.
11011107
11021108 Returns:
@@ -1109,6 +1115,7 @@ def _make_http_data(self, frame: 'Optional[Data_DataFrame]' = None, *,
11091115
11101116 pad_len = frame .pad_len
11111117 data = frame .data
1118+ padding = getattr (frame , 'padding' , b'' )
11121119
11131120 flags = Schema_DataFrame .Flags (0 )
11141121 if end_stream :
@@ -1119,6 +1126,7 @@ def _make_http_data(self, frame: 'Optional[Data_DataFrame]' = None, *,
11191126 return Schema_DataFrame (
11201127 pad_len = pad_len ,
11211128 data = data ,
1129+ padding = padding ,
11221130 ), flags
11231131
11241132 def _make_http_headers (self , frame : 'Optional[Data_HeadersFrame]' = None , * ,
@@ -1130,6 +1138,7 @@ def _make_http_headers(self, frame: 'Optional[Data_HeadersFrame]' = None, *,
11301138 sid_dep : 'Optional[int]' = None ,
11311139 weight : 'int' = 0 ,
11321140 fragment : 'bytes' = b'' ,
1141+ padding : 'bytes' = b'' ,
11331142 ** kwargs : 'Any' ) -> 'tuple[Schema_HeadersFrame, Flags]' :
11341143 """Make HTTP/2 ``HEADERS`` frame.
11351144
@@ -1143,6 +1152,8 @@ def _make_http_headers(self, frame: 'Optional[Data_HeadersFrame]' = None, *,
11431152 sid_dep: Dependency stream identifier.
11441153 weight: Priority weight value.
11451154 fragment: Header block fragment.
1155+ padding: Padding octets, written as given if exactly ``pad_len``
1156+ octets and as zeros otherwise.
11461157 **kwargs: Arbitrary keyword arguments.
11471158
11481159 Returns:
@@ -1160,6 +1171,7 @@ def _make_http_headers(self, frame: 'Optional[Data_HeadersFrame]' = None, *,
11601171 sid_dep = frame .stream_dependency
11611172 weight = frame .weight
11621173 fragment = frame .fragment
1174+ padding = getattr (frame , 'padding' , b'' )
11631175 else :
11641176 priority = sid_dep is not None
11651177 sid_dep = sid_dep or 0
@@ -1182,6 +1194,7 @@ def _make_http_headers(self, frame: 'Optional[Data_HeadersFrame]' = None, *,
11821194 },
11831195 weight = weight - 1 if weight else 0 ,
11841196 fragment = fragment ,
1197+ padding = padding ,
11851198 ), flags
11861199
11871200 def _make_http_priority (self , frame : 'Optional[Data_PriorityFrame]' = None , * ,
@@ -1304,6 +1317,7 @@ def _make_http_push_promise(self, frame: 'Optional[Data_PushPromiseFrame]' = Non
13041317 promised_reserved : 'int' = 0 ,
13051318 promised_sid : 'int' = 0 ,
13061319 fragment : 'bytes' = b'' ,
1320+ padding : 'bytes' = b'' ,
13071321 ** kwargs : 'Any' ) -> 'tuple[Schema_PushPromiseFrame, Flags]' :
13081322 """Make HTTP/2 ``PUSH_PROMISE`` frame.
13091323
@@ -1315,6 +1329,8 @@ def _make_http_push_promise(self, frame: 'Optional[Data_PushPromiseFrame]' = Non
13151329 promised_reserved: Reserved bit of the promised stream identifier.
13161330 promised_sid: Promised stream identifier.
13171331 fragment: Header block fragment.
1332+ padding: Padding octets, written as given if exactly ``pad_len``
1333+ octets and as zeros otherwise.
13181334 **kwargs: Arbitrary keyword arguments.
13191335
13201336 Returns:
@@ -1328,6 +1344,7 @@ def _make_http_push_promise(self, frame: 'Optional[Data_PushPromiseFrame]' = Non
13281344 promised_reserved = frame .promised_reserved
13291345 promised_sid = frame .promised_sid
13301346 fragment = frame .fragment
1347+ padding = getattr (frame , 'padding' , b'' )
13311348
13321349 flags = Schema_PushPromiseFrame .Flags (0 )
13331350 if end_headers :
@@ -1342,6 +1359,7 @@ def _make_http_push_promise(self, frame: 'Optional[Data_PushPromiseFrame]' = Non
13421359 'sid' : promised_sid ,
13431360 },
13441361 fragment = fragment ,
1362+ padding = padding ,
13451363 ), flags
13461364
13471365 def _make_http_ping (self , frame : 'Optional[Data_PingFrame]' = None , * ,
0 commit comments