Skip to content

Commit

Permalink
fix(network): updating peer manager
Browse files Browse the repository at this point in the history
  • Loading branch information
b00f committed Nov 6, 2023
1 parent 9a7adcd commit 4d4965e
Showing 1 changed file with 21 additions and 15 deletions.
36 changes: 21 additions & 15 deletions network/peermgr.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,31 +109,37 @@ func (mgr *peerMgr) CheckConnectivity() {

mgr.logger.Debug("check connectivity", "peers", len(mgr.peers))

// Let's check if some peers are disconnected
var connectedPeers []lp2ppeer.ID
var streamPeers []lp2ppeer.ID
net := mgr.host.Network()
for pid, pi := range mgr.peers {
connectedness := net.Connectedness(pid)
if connectedness == lp2pnet.Connected {
connectedPeers = append(connectedPeers, pid)
} else {
mgr.logger.Debug("peer is not connected to us", "peer", pid)
delete(mgr.peers, pid)
}

// Make sure we have connected to at least one peer that supports the stream protocol.
hasStreamConn := 0
for _, pi := range mgr.peers {
if slices.Contains(pi.Protocols, mgr.streamProtocolID) {
streamPeers = append(streamPeers, pid)
hasStreamConn++
}
}

// Make sure we have connected to at least one peer that supports the stream protocol.
if len(streamPeers) == 0 {
mgr.logger.Warn("no stream connection") // TODO: is it possible?
if hasStreamConn == 0 {
// TODO: is it possible?
mgr.logger.Warn("no stream connection")

for pid := range mgr.peers {
_ = net.ClosePeer(pid)
}

time.Sleep(1 * time.Second)
}

// Let's check if some peers are disconnected
var connectedPeers []lp2ppeer.ID
for pid := range mgr.peers {
connectedness := net.Connectedness(pid)
if connectedness == lp2pnet.Connected {
connectedPeers = append(connectedPeers, pid)
} else {
mgr.logger.Debug("peer is not connected to us", "peer", pid)
delete(mgr.peers, pid)
}
}

if len(connectedPeers) > mgr.maxConns {
Expand Down

0 comments on commit 4d4965e

Please sign in to comment.