mirror of
https://github.com/logos-messaging/logos-messaging-go.git
synced 2026-01-02 14:03:06 +00:00
parent
7badb4a37b
commit
092811658e
@ -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??
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user