From 70bd1eb9b990d9d54e1084ee98af0b60b1f83fe6 Mon Sep 17 00:00:00 2001 From: Mantre Date: Tue, 24 Oct 2023 22:28:01 +0800 Subject: [PATCH] fix(network): close connection when unbale to get supported protocols (#781) --- network/network.go | 7 ------- network/notifee.go | 7 +++++-- network/stream.go | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/network/network.go b/network/network.go index 3f23c5234..0abd80aac 100644 --- a/network/network.go +++ b/network/network.go @@ -218,13 +218,6 @@ func (n *network) Start() error { n.gossip.Start() n.stream.Start() - if n.config.EnableRelay { - for _, relayAddr := range n.config.RelayAddrs { - addrInfo, _ := MakeAddressInfo(relayAddr) - ConnectAsync(n.ctx, n.host, *addrInfo, n.logger) - } - } - n.logger.Info("network started", "addr", n.host.Addrs()) return nil } diff --git a/network/notifee.go b/network/notifee.go index 28e146ed1..e328ae9ba 100644 --- a/network/notifee.go +++ b/network/notifee.go @@ -11,6 +11,7 @@ import ( ) type NotifeeService struct { + host lp2phost.Host eventChannel chan<- Event logger *logger.SubLogger protocolID protocol.ID @@ -20,6 +21,7 @@ func newNotifeeService(host lp2phost.Host, eventChannel chan<- Event, logger *logger.SubLogger, protocolID protocol.ID, ) *NotifeeService { notifee := &NotifeeService{ + host: host, eventChannel: eventChannel, logger: logger, protocolID: protocolID, @@ -36,7 +38,7 @@ func (n *NotifeeService) Connected(lp2pn lp2pnetwork.Network, conn lp2pnetwork.C for i := 0; i < 10; i++ { // TODO: better way? // Wait to complete libp2p identify - time.Sleep(500 * time.Millisecond) + time.Sleep(1 * time.Second) protocols, _ := lp2pn.Peerstore().SupportsProtocols(peerID, n.protocolID) if len(protocols) > 0 { @@ -45,7 +47,8 @@ func (n *NotifeeService) Connected(lp2pn lp2pnetwork.Network, conn lp2pnetwork.C } } - n.logger.Info("this node doesn't support stream protocol", "pid", peerID) + n.logger.Info("unable to get supported protocols", "pid", peerID) + _ = n.host.Network().ClosePeer(peerID) }() } diff --git a/network/stream.go b/network/stream.go index c07fb2b45..bf03d9614 100644 --- a/network/stream.go +++ b/network/stream.go @@ -47,7 +47,7 @@ func (s *streamService) Stop() { func (s *streamService) handleStream(stream lp2pnetwork.Stream) { from := stream.Conn().RemotePeer() - s.logger.Debug("receiving stream", "from", from) + s.logger.Trace("receiving stream", "from", from) event := &StreamMessage{ Source: from, Reader: stream,