@@ -313,12 +313,11 @@ func recvPacket(r io.Reader, alloc *allocator, orderID uint32) (fxp, []byte, err
313313 }
314314
315315 if n , err := io .ReadFull (r , b [:4 ]); err != nil {
316- debug ("recv length %d of %d bytes: err %v" , n , 4 , err )
317- if n > 0 {
318- debug ("recv length error: bytes %x" , b [:n ])
316+ if err == io .EOF {
317+ return 0 , nil , err
319318 }
320319
321- return 0 , nil , err
320+ return 0 , nil , fmt . Errorf ( "error reading packet length: %d of 4: %w" , n , err )
322321 }
323322
324323 length , _ := unmarshalUint32 (b )
@@ -335,25 +334,26 @@ func recvPacket(r io.Reader, alloc *allocator, orderID uint32) (fxp, []byte, err
335334 b = make ([]byte , length )
336335 }
337336
338- if n , err := io .ReadFull (r , b [:length ]); err != nil {
339- // Log this error message _before_ we potentially override it.
340- debug ("recv packet %d of %d bytes: err %v" , n , length , err )
337+ n , err := io .ReadFull (r , b [:length ])
338+ b = b [:n ]
339+
340+ if err != nil {
341+ debug ("recv packet error: %d of %d bytes: %x" , n , length , b )
341342
342343 // ReadFull only returns EOF if it has read no bytes.
343344 // In this case, that means a partial packet, and thus unexpected.
344345 if err == io .EOF {
345346 err = io .ErrUnexpectedEOF
346347 }
347348
348- if n > 0 {
349- n := min (32 , n ) // limit bytes dump to 32-bytes.
350- debug ("recv packet error: bytes %x" , b [:n ])
349+ if n == 0 {
350+ return 0 , nil , fmt .Errorf ("error reading packet body: %d of %d: %w" , n , length , err )
351351 }
352352
353- return 0 , nil , err
353+ return 0 , nil , fmt . Errorf ( "error reading packet body: %d of %d: (%s) %w" , n , length , fxp ( b [ 0 ]), err )
354354 }
355355
356- typ , payload := fxp (b [0 ]), b [1 :length ]
356+ typ , payload := fxp (b [0 ]), b [1 :n ]
357357
358358 if debugDumpRxPacketBytes {
359359 debug ("recv packet: %s %d bytes %x" , typ , length , payload )
0 commit comments