From de45a85162d09ab1204d6953069a9320ad705785 Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Sat, 31 Jan 2015 10:35:36 +0000 Subject: [PATCH] tweak error handling in topology update application - simplify - abort early --- router/peers.go | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/router/peers.go b/router/peers.go index 6e5fb793..1051325d 100644 --- a/router/peers.go +++ b/router/peers.go @@ -197,7 +197,6 @@ func (peers *Peers) decodeUpdate(update []byte) (newPeers map[PeerName]*Peer, de } } - unknownPeers := false for _, connsBuf := range decodedConns { decErr := connsIterator(connsBuf, func(remoteNameByte []byte, _ string) { remoteName := PeerNameFromBin(remoteNameByte) @@ -209,19 +208,15 @@ func (peers *Peers) decodeUpdate(update []byte) (newPeers map[PeerName]*Peer, de } // Update refers to a peer which we have no knowledge // of. Thus we can't apply the update. Abort. - unknownPeers = true + err = UnknownPeersError{} }) - if decErr == io.EOF { - continue - } else if decErr != nil { + if decErr != nil && decErr != io.EOF { err = decErr + } + if err != nil { return } } - if unknownPeers { - err = UnknownPeersError{} - return - } return }