From bcd2a0184c264f6578ac8640ff4f6d212813ccdb Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Sat, 4 Apr 2015 20:08:38 +0100 Subject: [PATCH] small refactor --- router/router.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/router/router.go b/router/router.go index c38b0477..868177b5 100644 --- a/router/router.go +++ b/router/router.go @@ -388,6 +388,17 @@ func (router *Router) Gossip() GossipData { } func (router *Router) OnGossip(buf []byte) (GossipData, error) { + newUpdate, err := router.applyTopologyUpdate(buf) + if err != nil { + return nil, err + } + if len(newUpdate) == 0 { + return nil, nil + } + return &TopologyGossipData{peers: router.Peers, update: newUpdate}, nil +} + +func (router *Router) applyTopologyUpdate(buf []byte) (PeerNameSet, error) { newUpdate, err := router.Peers.ApplyUpdate(buf) if _, ok := err.(UnknownPeerError); err != nil && ok { // That update contained a reference to a peer which wasn't @@ -400,10 +411,9 @@ func (router *Router) OnGossip(buf []byte) (GossipData, error) { if err != nil { return nil, err } - if len(newUpdate) == 0 { - return nil, nil + if len(newUpdate) > 0 { + router.ConnectionMaker.Refresh() + router.Routes.Recalculate() } - router.ConnectionMaker.Refresh() - router.Routes.Recalculate() - return &TopologyGossipData{peers: router.Peers, update: newUpdate}, nil + return newUpdate, nil }