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 return
} }
totalRelayPeers := inRelayPeers.Len() + outRelayPeers.Len() 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??? //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. //Find not connected peers.
notConnectedPeers := pm.getNotConnectedPers() notConnectedPeers := pm.getNotConnectedPers()
//Figure out outside backoff peers. if notConnectedPeers.Len() == 0 {
return
}
//Connect to eligible peers. //Connect to eligible peers.
numPeersToConnect := pm.maxRelayPeers - totalRelayPeers numPeersToConnect := pm.maxRelayPeers - totalRelayPeers
if numPeersToConnect > notConnectedPeers.Len() { if numPeersToConnect > notConnectedPeers.Len() {
numPeersToConnect = notConnectedPeers.Len() - 1 numPeersToConnect = notConnectedPeers.Len()
} }
if numPeersToConnect <= 0 {
return
}
pm.connectToPeers(notConnectedPeers[0:numPeersToConnect]) pm.connectToPeers(notConnectedPeers[0:numPeersToConnect])
} //Else: Should we raise some sort of unhealthy event?? } //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) h1, err := tests.MakeHost(ctx, 0, rand.Reader)
require.NoError(t, err) require.NoError(t, err)
defer h1.Close() defer h1.Close()
// host 1 is used by peer manager // host 1 is used by peer manager
pm := NewPeerManager(10, utils.Logger()) pm := NewPeerManager(10, utils.Logger())
pm.SetHost(h1) pm.SetHost(h1)
return ctx, pm, func() { return ctx, pm, func() {
cancel() cancel()
h1.Close() h1.Close()
@ -153,13 +155,15 @@ func TestAdditionAndRemovalOfPeer(t *testing.T) {
} }
func TestConnectToRelayPeers(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() defer deferFn()
pm.connectToRelayPeers() pm.connectToRelayPeers()