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