@@ -82,8 +82,8 @@ def _pack_packet(
8282 payload : dict [str , Any ],
8383 ) -> bytes :
8484 ver_b = ver .to_bytes (1 , "big" )
85- cmd_b = cmd .to_bytes (2 , "big" )
86- seq_b = ( seq % 256 ) .to_bytes (1 , "big" )
85+ cmd_b = cmd .to_bytes (1 , "big" )
86+ seq_b = seq .to_bytes (2 , "big" )
8787 opcode_b = opcode .to_bytes (2 , "big" )
8888 payload_bytes : bytes | None = msgpack .packb (payload )
8989 if payload_bytes is None :
@@ -255,6 +255,11 @@ async def connect(self, user_agent: UserAgentPayload | None = None) -> dict[str,
255255 self ._outgoing = asyncio .Queue ()
256256 self ._pending = {}
257257 self ._recv_task = self ._create_safe_task (self ._recv_loop (), name = "recv_loop socket task" )
258+ self ._recv_task .add_done_callback (
259+ lambda t : self .logger .debug (
260+ "recv_task done: cancelled=%s, exc=%r" , t .cancelled (), t .exception ()
261+ )
262+ )
258263 self ._outgoing_task = self ._create_safe_task (
259264 self ._outgoing_loop (), name = "outgoing_loop socket task"
260265 )
@@ -364,11 +369,13 @@ async def _recv_loop(self) -> None:
364369 self .logger .debug ("Received header: %s" , header )
365370
366371 if not header :
372+ self .logger .error ("No header received, exiting recv loop" )
367373 break
368374
369375 datas = await self ._recv_data (loop , header , sock )
370376
371377 if not datas :
378+ self .logger .warning ("No data received, continuing recv loop" )
372379 continue
373380
374381 consecutive_errors = 0
@@ -386,15 +393,15 @@ async def _recv_loop(self) -> None:
386393
387394 except asyncio .CancelledError :
388395 self .logger .debug ("Recv loop cancelled" )
389- raise
396+ break
390397 except (
391398 ssl .SSLError ,
392399 ssl .SSLEOFError ,
393400 ConnectionResetError ,
394401 BrokenPipeError ,
395402 ) as ssl_err :
396403 consecutive_errors += 1
397- self .logger .error (
404+ self .logger .exception (
398405 "SSL/Connection error in recv_loop (error %d/%d): %s" ,
399406 consecutive_errors ,
400407 max_consecutive_errors ,
0 commit comments