Skip to content

Commit

Permalink
improve Unexpected EOF error message
Browse files Browse the repository at this point in the history
  • Loading branch information
sarp committed Sep 24, 2024
1 parent ed18c98 commit 2a0b852
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
6 changes: 5 additions & 1 deletion internal/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package internal
import (
"bytes"
"encoding/binary"
"errors"
"io"
"net"

Expand Down Expand Up @@ -84,7 +85,7 @@ func formatExtendedPayload(buf bytes.Buffer, extensionId uint8) []byte {
}

// Read parses a message from a stream. Returns `nil` on keep-alive message
func readMessage(r io.Reader) (*Message, error) {
func readMessage(r io.Reader, logger *logger.Logger) (*Message, error) {
lengthBuf := make([]byte, 4)
_, err := io.ReadFull(r, lengthBuf)
if err != nil {
Expand All @@ -100,6 +101,9 @@ func readMessage(r io.Reader) (*Message, error) {
messageBuf := make([]byte, length)
_, err = io.ReadFull(r, messageBuf)
if err != nil {
if errors.Is(err, io.ErrUnexpectedEOF) {
logger.Errorln("Ensure message length prefix has the correct value. Also make sure you're sending correct sequence of messages.")
}
return nil, err
}

Expand Down
2 changes: 1 addition & 1 deletion internal/stage_magnet_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ func receiveAndAssertExtensionHandshake(conn net.Conn, logger *logger.Logger) (i

func receiveExtensionHandshake(conn net.Conn, logger *logger.Logger) (*Message, error) {
logger.Debugln("Waiting to receive extension handshake message")
msg, err := readMessage(conn)
msg, err := readMessage(conn, logger)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion internal/stage_magnet_metadata1.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func readMetadataRequest(conn net.Conn, logger *logger.Logger) (err error) {
defer logOnExit(logger, &err)

logger.Debugln("Waiting to receive metadata request")
msg, err := readMessage(conn)
msg, err := readMessage(conn, logger)
if err != nil {
return fmt.Errorf("error reading message: %v", err.Error())
}
Expand Down

0 comments on commit 2a0b852

Please sign in to comment.