From efcefdcce4318c6a99dbe733bd3cf459f3e4ef60 Mon Sep 17 00:00:00 2001 From: Wolfgang Welz <welzwo@gmail.com> Date: Sun, 28 Jun 2020 19:30:14 +0200 Subject: [PATCH] Fix linter warnings in gossip package (#572) --- packages/gossip/errors.go | 17 ++++++++++++----- packages/gossip/manager.go | 10 +++++----- packages/gossip/manager_test.go | 4 ++-- packages/gossip/neighbor.go | 7 +------ 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/packages/gossip/errors.go b/packages/gossip/errors.go index 3c3228e6..4c217b59 100644 --- a/packages/gossip/errors.go +++ b/packages/gossip/errors.go @@ -3,9 +3,16 @@ package gossip import "errors" var ( - ErrNotRunning = errors.New("manager not running") - ErrNotANeighbor = errors.New("peer is not a neighbor") - ErrLoopback = errors.New("loopback connection not allowed") - ErrDuplicateNeighbor = errors.New("peer already connected") - ErrInvalidPacket = errors.New("invalid packet") + // ErrNotRunning is returned when a neighbor is added to a stopped or not yet started gossip manager. + ErrNotRunning = errors.New("manager not running") + // ErrUnknownNeighbor is returned when the specified neighbor is not known to the gossip manager. + ErrUnknownNeighbor = errors.New("unknown neighbor") + // ErrLoopbackNeighbor is returned when the own peer is specified as a neighbor. + ErrLoopbackNeighbor = errors.New("loopback connection not allowed") + // ErrDuplicateNeighbor is returned when the same peer is added more than once as a neighbor. + ErrDuplicateNeighbor = errors.New("already connected") + // ErrInvalidPacket is returned when the gossip manager receives an invalid packet. + ErrInvalidPacket = errors.New("invalid packet") + // ErrNeighborQueueFull is returned when the send queue is already full. + ErrNeighborQueueFull = errors.New("send queue is full") ) diff --git a/packages/gossip/manager.go b/packages/gossip/manager.go index 73f3c342..e31c6f78 100644 --- a/packages/gossip/manager.go +++ b/packages/gossip/manager.go @@ -97,7 +97,7 @@ func (m *Manager) AddOutbound(p *peer.Peer) error { defer m.mu.Unlock() if p.ID() == m.local.ID() { - return ErrLoopback + return ErrLoopbackNeighbor } if m.srv == nil { return ErrNotRunning @@ -111,7 +111,7 @@ func (m *Manager) AddInbound(p *peer.Peer) error { defer m.mu.Unlock() if p.ID() == m.local.ID() { - return ErrLoopback + return ErrLoopbackNeighbor } if m.srv == nil { return ErrNotRunning @@ -125,7 +125,7 @@ func (m *Manager) DropNeighbor(id identity.ID) error { defer m.mu.Unlock() if _, ok := m.neighbors[id]; !ok { - return ErrNotANeighbor + return ErrUnknownNeighbor } n := m.neighbors[id] delete(m.neighbors, id) @@ -161,12 +161,12 @@ func (m *Manager) AllNeighbors() []*Neighbor { func (m *Manager) getNeighbors(ids ...identity.ID) []*Neighbor { if len(ids) > 0 { - return m.getNeighborsById(ids) + return m.getNeighborsByID(ids) } return m.AllNeighbors() } -func (m *Manager) getNeighborsById(ids []identity.ID) []*Neighbor { +func (m *Manager) getNeighborsByID(ids []identity.ID) []*Neighbor { result := make([]*Neighbor, 0, len(ids)) m.mu.Lock() diff --git a/packages/gossip/manager_test.go b/packages/gossip/manager_test.go index e5da13bc..cef576dd 100644 --- a/packages/gossip/manager_test.go +++ b/packages/gossip/manager_test.go @@ -336,12 +336,12 @@ func TestMessageRequest(t *testing.T) { // wait for the connections to establish wg.Wait() - messageId := message.Id{} + id := message.Id{} // mgrA should eventually receive the message mgrA.On("messageReceived", &MessageReceivedEvent{Data: testMessageData, Peer: peerB}).Once() - b, err := proto.Marshal(&pb.MessageRequest{Id: messageId[:]}) + b, err := proto.Marshal(&pb.MessageRequest{Id: id[:]}) require.NoError(t, err) mgrA.RequestMessage(b) time.Sleep(graceTime) diff --git a/packages/gossip/neighbor.go b/packages/gossip/neighbor.go index 330254c3..76868f75 100644 --- a/packages/gossip/neighbor.go +++ b/packages/gossip/neighbor.go @@ -1,7 +1,6 @@ package gossip import ( - "errors" "io" "net" "strings" @@ -15,17 +14,13 @@ import ( "go.uber.org/atomic" ) -var ( - // ErrNeighborQueueFull is returned when the send queue is already full. - ErrNeighborQueueFull = errors.New("send queue is full") -) - const ( neighborQueueSize = 5000 maxNumReadErrors = 10 droppedMessagesThreshold = 1000 ) +// Neighbor describes the established gossip connection to another peer. type Neighbor struct { *peer.Peer *buffconn.BufferedConnection -- GitLab