refactor: extract some helpers useful for testing

This commit is contained in:
Matthias Radestock committed 2015-01-19 21:25:28 +00:00
1 parent c7701a20b5
commit 1a31748e40
1 file changed
+26 -17
+26 -17
View File
@@ -210,9 +210,7 @@ func (peer *LocalPeer) handleAddConnection(conn *LocalConnection) {
conn.CheckFatal(err)
return
}
peer.Lock()
peer.connections[toName] = conn
peer.Unlock()
peer.addConnection(conn)
conn.log("connection added")
}
@@ -227,21 +225,12 @@ func (peer *LocalPeer) handleDeleteConnection(conn *LocalConnection) {
if connFound, found := peer.connections[toName]; !found || connFound != conn {
return
}
peer.Lock()
delete(peer.connections, toName)
peer.Unlock()
peer.deleteConnection(conn)
conn.log("connection deleted")
broadcast := false
if conn.Established() {
peer.Lock()
peer.version += 1
peer.Unlock()
broadcast = true
}
// Must do garbage collection first to ensure we don't send out an
// update with unreachable peers (can cause looping)
peer.Router.Peers.GarbageCollect()
if broadcast {
if conn.Established() {
peer.broadcastPeerUpdate()
}
}
@@ -254,9 +243,7 @@ func (peer *LocalPeer) handleConnectionEstablished(conn *LocalConnection) {
conn.CheckFatal(fmt.Errorf("Cannot set unknown connection active"))
return
}
peer.Lock()
peer.version += 1
peer.Unlock()
peer.connectionEstablished(conn)
conn.log("connection fully established")
peer.broadcastPeerUpdate(conn.Remote())
}
@@ -267,6 +254,28 @@ func (peer *LocalPeer) handleBroadcastTCP(msg []byte) {
})
}
func (peer *LocalPeer) addConnection(conn Connection) {
peer.Lock()
peer.connections[conn.Remote().Name] = conn
peer.Unlock()
}
func (peer *LocalPeer) deleteConnection(conn Connection) {
established := conn.Established()
peer.Lock()
delete(peer.connections, conn.Remote().Name)
if established {
peer.version += 1
}
peer.Unlock()
}
func (peer *LocalPeer) connectionEstablished(conn Connection) {
peer.Lock()
peer.version += 1
peer.Unlock()
}
func (peer *LocalPeer) broadcastPeerUpdate(peers ...*Peer) {
peer.Router.Routes.Recalculate()
peer.handleBroadcastTCP(Concat(ProtocolUpdateByte, EncodePeers(append(peers, peer.Peer)...)))