From 8019a49037d80a119f0a1c420b0197ece7cf631b Mon Sep 17 00:00:00 2001 From: tycho garen Date: Fri, 10 Jun 2022 08:49:16 -0400 Subject: [PATCH] fix error message (cherry picked from commit 86db59f53bde217f42ff58af43f993e58594c006) --- internal/p2p/peermanager.go | 5 ++++- internal/p2p/router.go | 14 +++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/internal/p2p/peermanager.go b/internal/p2p/peermanager.go index 3ab6fbdc2..f9e57b3c1 100644 --- a/internal/p2p/peermanager.go +++ b/internal/p2p/peermanager.go @@ -432,6 +432,10 @@ func (m *PeerManager) Add(address NodeAddress) (bool, error) { return false, nil } + // set the peer's mutable score to something non-zero so that + // peer's we've never + peer.MutableScore = 256 + // else add the new address peer.AddressInfo[address] = &peerAddressInfo{Address: address} if err := m.store.Set(peer); err != nil { @@ -862,7 +866,6 @@ func (m *PeerManager) Advertise(peerID types.NodeID, limit uint16) []NodeAddress } for nodeAddr, addressInfo := range peer.AddressInfo { - if len(addresses) >= int(limit) { return addresses } diff --git a/internal/p2p/router.go b/internal/p2p/router.go index 4e2a6be1f..21f306507 100644 --- a/internal/p2p/router.go +++ b/internal/p2p/router.go @@ -837,14 +837,6 @@ func (r *Router) handshakePeer( return peerInfo, peerKey, fmt.Errorf("invalid handshake NodeInfo: %w", err) } - if peerInfo.Network != r.nodeInfo.Network { - if err := r.peerManager.Inactivate(peerInfo.NodeID); err != nil { - return peerInfo, peerKey, fmt.Errorf("problem removing peer from store from incorrect network [%s]: %w", peerInfo.Network, err) - } - - return peerInfo, peerKey, fmt.Errorf("connected to peer from wrong network, %q, removed from peer store", peerInfo.Network) - } - if types.NodeIDFromPubKey(peerKey) != peerInfo.NodeID { return peerInfo, peerKey, fmt.Errorf("peer's public key did not match its node ID %q (expected %q)", peerInfo.NodeID, types.NodeIDFromPubKey(peerKey)) @@ -855,7 +847,11 @@ func (r *Router) handshakePeer( } if err := r.nodeInfo.CompatibleWith(peerInfo); err != nil { - return peerInfo, peerKey, ErrRejected{ + if err := r.peerManager.Inactivate(peerInfo.NodeID); err != nil { + return peerInfo, fmt.Errorf("problem inactivating peer %q: %w", peerInfo.ID(), err) + } + + return peerInfo, ErrRejected{ err: err, id: peerInfo.ID(), isIncompatible: true,