Skip to content

Commit

Permalink
put more info to error log
Browse files Browse the repository at this point in the history
  • Loading branch information
cenkalti committed Oct 9, 2019
1 parent e95caf1 commit e72a330
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions internal/peerconn/peerreader/peerreader.go
Expand Up @@ -94,6 +94,8 @@ func (p *PeerReader) Run() {
}()

first := true
first10messages := make([]peerprotocol.MessageID, 0, 10)
var numMessages int
for {
err = p.conn.SetReadDeadline(time.Now().Add(readTimeout))
if err != nil {
Expand Down Expand Up @@ -121,6 +123,10 @@ func (p *PeerReader) Run() {
length--

// p.log.Debugf("Received message of type: %q", id)
if len(first10messages) < 10 {
first10messages = append(first10messages, id)
}
numMessages++

var msg interface{}

Expand All @@ -146,7 +152,8 @@ func (p *PeerReader) Run() {
msg = hm
case peerprotocol.Bitfield:
if !first {
err = errors.New("bitfield can only be sent after handshake")
errorMsg := fmt.Sprintf("bitfield can only be sent after handshake (numMessages: %d) (first 10 messages: %v)", numMessages, first10messages)
err = errors.New(errorMsg)
return
}
var bm peerprotocol.BitfieldMessage
Expand Down Expand Up @@ -203,13 +210,15 @@ func (p *PeerReader) Run() {
msg = Piece{PieceMessage: pm, Buffer: buf}
case peerprotocol.HaveAll:
if !first {
err = errors.New("have_all can only be sent after handshake")
errorMsg := fmt.Sprintf("have_all can only be sent after handshake (numMessages: %d) (first 10 messages: %v)", numMessages, first10messages)
err = errors.New(errorMsg)
return
}
msg = peerprotocol.HaveAllMessage{}
case peerprotocol.HaveNone:
if !first {
err = errors.New("have_none can only be sent after handshake")
errorMsg := fmt.Sprintf("have_none can only be sent after handshake (numMessages: %d) (first 10 messages: %v)", numMessages, first10messages)
err = errors.New(errorMsg)
return
}
msg = peerprotocol.HaveNoneMessage{}
Expand Down

0 comments on commit e72a330

Please sign in to comment.