MCPcopy Create free account
hub / github.com/DeAI-Artist/Linkis / StopPeerForError

Method StopPeerForError

p2p/switch.go:367–390  ·  view source on GitHub ↗

StopPeerForError disconnects from a peer due to external error. If the peer is persistent, it will attempt to reconnect. TODO: make record depending on reason.

(peer Peer, reason interface{})

Source from the content-addressed store, hash-verified

365// If the peer is persistent, it will attempt to reconnect.
366// TODO: make record depending on reason.
367func (sw *Switch) StopPeerForError(peer Peer, reason interface{}) {
368 if !peer.IsRunning() {
369 return
370 }
371
372 sw.Logger.Error("Stopping peer for error", "peer", peer, "err", reason)
373 sw.stopAndRemovePeer(peer, reason)
374
375 if peer.IsPersistent() {
376 var addr *NetAddress
377 if peer.IsOutbound() { // socket address for outbound peers
378 addr = peer.SocketAddr()
379 } else { // self-reported address for inbound peers
380 var err error
381 addr, err = peer.NodeInfo().NetAddress()
382 if err != nil {
383 sw.Logger.Error("Wanted to reconnect to inbound peer, but self-reported address is wrong",
384 "peer", peer, "err", err)
385 return
386 }
387 }
388 go sw.reconnectToPeer(addr)
389 }
390}
391
392// StopPeerGracefully disconnects from a peer gracefully.
393// TODO: handle graceful disconnects.

Callers 14

ReceiveEnvelopeMethod · 0.80
ReceiveEnvelopeMethod · 0.80
ReceiveEnvelopeMethod · 0.80
TestSwitchRemovalErrFunction · 0.80
ReceiveEnvelopeMethod · 0.80
ReceiveEnvelopeMethod · 0.80
ReportMethod · 0.80
ReceiveEnvelopeMethod · 0.80
poolRoutineMethod · 0.80

Calls 9

stopAndRemovePeerMethod · 0.95
reconnectToPeerMethod · 0.95
IsRunningMethod · 0.65
ErrorMethod · 0.65
IsPersistentMethod · 0.65
IsOutboundMethod · 0.65
SocketAddrMethod · 0.65
NetAddressMethod · 0.65
NodeInfoMethod · 0.65