diff --git a/router/gossip_test.go b/router/gossip_test.go index c6936a09..b5d18f93 100644 --- a/router/gossip_test.go +++ b/router/gossip_test.go @@ -60,8 +60,8 @@ func (router *Router) DeleteTestChannelConnection(r *Router) { fromName := router.Ourself.Peer.Name toName := r.Ourself.Peer.Name - fromPeer, _ := r.Peers.Fetch(fromName) - toPeer, _ := router.Peers.Fetch(toName) + fromPeer := r.Peers.Fetch(fromName) + toPeer := router.Peers.Fetch(toName) r.Peers.Dereference(fromPeer) router.Peers.Dereference(toPeer) diff --git a/router/handshake.go b/router/handshake.go index dd57d5df..b9f54831 100644 --- a/router/handshake.go +++ b/router/handshake.go @@ -82,7 +82,7 @@ func (conn *LocalConnection) handshake(acceptNewPeer bool) (TCPReceiver, error) return nil, err } if !acceptNewPeer { - if _, found := conn.Router.Peers.Fetch(name); !found { + if conn.Router.Peers.Fetch(name) != nil { return nil, fmt.Errorf("Found unknown remote name: %s at %s", name, conn.remoteTCPAddr) } } diff --git a/router/mocks_test.go b/router/mocks_test.go index 7dacd9e9..183f642b 100644 --- a/router/mocks_test.go +++ b/router/mocks_test.go @@ -34,7 +34,7 @@ func (peers *Peers) AddTestRemoteConnection(p1, p2 *Peer) { func (peers *Peers) DeleteTestConnection(p *Peer) { toName := p.Name - toPeer, _ := peers.Fetch(toName) + toPeer := peers.Fetch(toName) peers.Dereference(toPeer) conn, _ := peers.ourself.ConnectionTo(toName) peers.ourself.deleteConnection(conn) diff --git a/router/peers.go b/router/peers.go index 5b11099e..9f10e99d 100644 --- a/router/peers.go +++ b/router/peers.go @@ -61,11 +61,10 @@ func (peers *Peers) FetchWithDefault(peer *Peer) *Peer { return peer } -func (peers *Peers) Fetch(name PeerName) (*Peer, bool) { +func (peers *Peers) Fetch(name PeerName) *Peer { peers.RLock() defer peers.RUnlock() - peer, found := peers.table[name] - return peer, found // GRRR, why can't I inline this!? + return peers.table[name] } func (peers *Peers) Dereference(peer *Peer) { diff --git a/router/router.go b/router/router.go index 00f53588..f4a254fc 100644 --- a/router/router.go +++ b/router/router.go @@ -281,12 +281,9 @@ func (router *Router) udpReader(conn *net.UDPConn, po PacketSink) { func (router *Router) handleUDPPacketFunc(relayConn *LocalConnection, dec *EthernetDecoder, sender *net.UDPAddr, po PacketSink) FrameConsumer { return func(srcNameByte, dstNameByte []byte, frame []byte) { - srcPeer, found := router.Peers.Fetch(PeerNameFromBin(srcNameByte)) - if !found { - return - } - dstPeer, found := router.Peers.Fetch(PeerNameFromBin(dstNameByte)) - if !found { + srcPeer := router.Peers.Fetch(PeerNameFromBin(srcNameByte)) + dstPeer := router.Peers.Fetch(PeerNameFromBin(dstNameByte)) + if srcPeer == nil || dstPeer == nil { return } @@ -335,7 +332,7 @@ func (router *Router) handleUDPPacketFunc(relayConn *LocalConnection, dec *Ether checkWarn(po.WritePacket(frame)) } - dstPeer, found = router.Macs.Lookup(dstMac) + dstPeer, found := router.Macs.Lookup(dstMac) if !found || dstPeer != router.Ourself.Peer { router.LogFrame("Relaying broadcast", frame, dec) router.Ourself.RelayBroadcast(srcPeer, frame, dec)