Stop peer routines upon connection failure

This commit is contained in:
Jae Kwon
2014-12-30 16:49:23 -08:00
parent 16c80fd65f
commit 40fec4f319
3 changed files with 9 additions and 7 deletions
+4 -4
View File
@@ -287,7 +287,7 @@ FOR_LOOP:
}
if err != nil {
log.Warn("Connection failed @ sendRoutine", "connection", c, "error", err)
c.Stop()
c.stopForError(err)
break FOR_LOOP
}
}
@@ -382,7 +382,7 @@ FOR_LOOP:
if err != nil {
if atomic.LoadUint32(&c.stopped) != 1 {
log.Warn("Connection failed @ recvRoutine", "connection", c, "error", err)
c.Stop()
c.stopForError(err)
}
break FOR_LOOP
}
@@ -400,8 +400,8 @@ FOR_LOOP:
c.recvMonitor.Update(int(*n))
if *err != nil {
if atomic.LoadUint32(&c.stopped) != 1 {
log.Warn(Fmt("%v failed @ recvRoutine", c))
c.Stop()
log.Warn("Connection failed @ recvRoutine", "connection", c, "error", *err)
c.stopForError(*err)
}
break FOR_LOOP
}
+2 -2
View File
@@ -197,7 +197,7 @@ func (sw *Switch) Peers() IPeerSet {
// Disconnect from a peer due to external error.
// TODO: make record depending on reason.
func (sw *Switch) StopPeerForError(peer *Peer, reason interface{}) {
log.Info(Fmt("- %v !! reason: %v", peer, reason))
log.Info("Stopping peer for error", "peer", peer, "error", reason)
sw.peers.Remove(peer)
peer.stop()
@@ -208,7 +208,7 @@ func (sw *Switch) StopPeerForError(peer *Peer, reason interface{}) {
// Disconnect from a peer gracefully.
// TODO: handle graceful disconnects.
func (sw *Switch) StopPeerGracefully(peer *Peer) {
log.Info(Fmt("- %v", peer))
log.Info("Stopping peer gracefully")
sw.peers.Remove(peer)
peer.stop()