fix: changes as per review comments in #714 and fix test (#717)

This commit is contained in:
Prem Chaitanya Prathi 2023-09-07 15:01:31 +05:30 committed by GitHub
parent 7badb4a37b
commit 092811658e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 16 deletions

View File

@ -156,24 +156,20 @@ func (pm *PeerManager) connectToRelayPeers() {
return
}
totalRelayPeers := inRelayPeers.Len() + outRelayPeers.Len()
// Establish additional connections if there are peers.
// Establish additional connections connected peers are lesser than target.
//What if the not connected peers in peerstore are not relay peers???
if totalRelayPeers < pm.host.Peerstore().Peers().Len() {
if totalRelayPeers < pm.maxRelayPeers {
//Find not connected peers.
notConnectedPeers := pm.getNotConnectedPers()
//Figure out outside backoff peers.
if notConnectedPeers.Len() == 0 {
return
}
//Connect to eligible peers.
numPeersToConnect := pm.maxRelayPeers - totalRelayPeers
if numPeersToConnect > notConnectedPeers.Len() {
numPeersToConnect = notConnectedPeers.Len() - 1
numPeersToConnect = notConnectedPeers.Len()
}
if numPeersToConnect <= 0 {
return
}
pm.connectToPeers(notConnectedPeers[0:numPeersToConnect])
} //Else: Should we raise some sort of unhealthy event??
}

View File

@ -28,9 +28,11 @@ func initTest(t *testing.T) (context.Context, *PeerManager, func()) {
h1, err := tests.MakeHost(ctx, 0, rand.Reader)
require.NoError(t, err)
defer h1.Close()
// host 1 is used by peer manager
pm := NewPeerManager(10, utils.Logger())
pm.SetHost(h1)
return ctx, pm, func() {
cancel()
h1.Close()
@ -153,13 +155,15 @@ func TestAdditionAndRemovalOfPeer(t *testing.T) {
}
func TestConnectToRelayPeers(t *testing.T) {
defer func() {
if r := recover(); r != nil {
t.Errorf("TestConnectToRelayPeers panicked: %v", r)
}
}()
_, pm, deferFn := initTest(t)
ctx, pm, deferFn := initTest(t)
pc, err := NewPeerConnectionStrategy(pm, 120*time.Second, pm.logger)
require.NoError(t, err)
pm.SetPeerConnector(pc)
err = pc.Start(ctx)
require.NoError(t, err)
pm.Start(ctx)
defer deferFn()
pm.connectToRelayPeers()