@@ -119,7 +119,7 @@ def receive_data(self, data: Optional[bytes]) -> None:
119
119
120
120
:param bytes data: Data received from the WebSocket peer.
121
121
"""
122
- self ._h11_connection .receive_data (data )
122
+ self ._h11_connection .receive_data (data or b"" )
123
123
while True :
124
124
try :
125
125
event = self ._h11_connection .next_event ()
@@ -141,7 +141,7 @@ def receive_data(self, data: Optional[bytes]) -> None:
141
141
else :
142
142
self ._events .append (
143
143
RejectConnection (
144
- headers = event .headers ,
144
+ headers = list ( event .headers ) ,
145
145
status_code = event .status_code ,
146
146
has_body = False ,
147
147
)
@@ -151,7 +151,7 @@ def receive_data(self, data: Optional[bytes]) -> None:
151
151
self ._state = ConnectionState .REJECTING
152
152
self ._events .append (
153
153
RejectConnection (
154
- headers = event .headers ,
154
+ headers = list ( event .headers ) ,
155
155
status_code = event .status_code ,
156
156
has_body = True ,
157
157
)
@@ -286,36 +286,36 @@ def _accept(self, event: AcceptConnection) -> bytes:
286
286
event .extensions ,
287
287
)
288
288
self ._state = ConnectionState .OPEN
289
- return self ._h11_connection .send (response ) # type: ignore[no-any-return]
289
+ return self ._h11_connection .send (response ) or b""
290
290
291
291
def _reject (self , event : RejectConnection ) -> bytes :
292
292
if self .state != ConnectionState .CONNECTING :
293
293
raise LocalProtocolError (
294
294
"Connection cannot be rejected in state %s" % self .state
295
295
)
296
296
297
- headers = event .headers
297
+ headers = list ( event .headers )
298
298
if not event .has_body :
299
299
headers .append ((b"content-length" , b"0" ))
300
300
response = h11 .Response (status_code = event .status_code , headers = headers )
301
- data = self ._h11_connection .send (response )
301
+ data = self ._h11_connection .send (response ) or b""
302
302
self ._state = ConnectionState .REJECTING
303
303
if not event .has_body :
304
- data += self ._h11_connection .send (h11 .EndOfMessage ())
304
+ data += self ._h11_connection .send (h11 .EndOfMessage ()) or b""
305
305
self ._state = ConnectionState .CLOSED
306
- return data # type: ignore[no-any-return]
306
+ return data
307
307
308
308
def _send_reject_data (self , event : RejectData ) -> bytes :
309
309
if self .state != ConnectionState .REJECTING :
310
310
raise LocalProtocolError (
311
311
f"Cannot send rejection data in state { self .state } "
312
312
)
313
313
314
- data = self ._h11_connection .send (h11 .Data (data = event .data ))
314
+ data = self ._h11_connection .send (h11 .Data (data = event .data )) or b""
315
315
if event .body_finished :
316
- data += self ._h11_connection .send (h11 .EndOfMessage ())
316
+ data += self ._h11_connection .send (h11 .EndOfMessage ()) or b""
317
317
self ._state = ConnectionState .CLOSED
318
- return data # type: ignore[no-any-return]
318
+ return data
319
319
320
320
# Client mode methods
321
321
@@ -360,7 +360,7 @@ def _initiate_connection(self, request: Request) -> bytes:
360
360
target = request .target .encode ("ascii" ),
361
361
headers = headers + request .extra_headers ,
362
362
)
363
- return self ._h11_connection .send (upgrade ) # type: ignore[no-any-return]
363
+ return self ._h11_connection .send (upgrade ) or b""
364
364
365
365
def _establish_client_connection (
366
366
self , event : h11 .InformationalResponse
@@ -387,7 +387,7 @@ def _establish_client_connection(
387
387
accept = value
388
388
continue # Skip appending to headers
389
389
elif name == b"sec-websocket-protocol" :
390
- subprotocol = value
390
+ subprotocol = value . decode ( "ascii" )
391
391
continue # Skip appending to headers
392
392
elif name == b"upgrade" :
393
393
upgrade = value
@@ -408,7 +408,6 @@ def _establish_client_connection(
408
408
if accept != accept_token :
409
409
raise RemoteProtocolError ("Bad accept token" , event_hint = RejectConnection ())
410
410
if subprotocol is not None :
411
- subprotocol = subprotocol .decode ("ascii" )
412
411
if subprotocol not in self ._initiating_request .subprotocols :
413
412
raise RemoteProtocolError (
414
413
f"unrecognized subprotocol { subprotocol } " ,
0 commit comments