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