diff --git a/p2p/switch.go b/p2p/switch.go index 63deace29..fa037a9b8 100644 --- a/p2p/switch.go +++ b/p2p/switch.go @@ -547,7 +547,9 @@ func (sw *Switch) addPeer(pc peerConn) error { // All good. Start peer if sw.IsRunning() { - sw.startInitPeer(peer) + if err = sw.startInitPeer(peer); err != nil { + return err + } } // Add the peer to .peers. @@ -561,14 +563,17 @@ func (sw *Switch) addPeer(pc peerConn) error { return nil } -func (sw *Switch) startInitPeer(peer *peer) { +func (sw *Switch) startInitPeer(peer *peer) error { err := peer.Start() // spawn send/recv routines if err != nil { // Should never happen sw.Logger.Error("Error starting peer", "peer", peer, "err", err) + return err } for _, reactor := range sw.reactors { reactor.AddPeer(peer) } + + return nil }