From bf223cf9a6164d3c5b3d8adb366c85540f949eb1 Mon Sep 17 00:00:00 2001 From: Benoit Lavenier <benoit.lavenier@e-is.pro> Date: Mon, 5 Jun 2023 13:32:22 +0200 Subject: [PATCH] fix(ws2p): numberOfFreeRooms() was testing a Promise as a boolean, so it was always true! 'freeMemberRoom' value was always used, instead of 'freeMirrorRoom' --- app/modules/ws2p/lib/WS2PCluster.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/modules/ws2p/lib/WS2PCluster.ts b/app/modules/ws2p/lib/WS2PCluster.ts index fe2d29e3c..854dfed12 100644 --- a/app/modules/ws2p/lib/WS2PCluster.ts +++ b/app/modules/ws2p/lib/WS2PCluster.ts @@ -572,6 +572,7 @@ export class WS2PCluster { const canReachClearEndpoint = ProxiesConf.canReachClearEndpoint( this.server.conf.proxiesConf ); + const isMember = (await this.server.dal.isMember(this.server.conf.pair.pub)); peers.sort((a, b) => { // Top priority at our own nodes if ( @@ -591,12 +592,14 @@ export class WS2PCluster { const aNumberOfFreeRooms = this.numberOfFreeRooms( a, canReachTorEndpoint, - canReachClearEndpoint + canReachClearEndpoint, + isMember ); const bNumberOfFreeRooms = this.numberOfFreeRooms( b, canReachTorEndpoint, - canReachClearEndpoint + canReachClearEndpoint, + isMember ); if (canReachTorEndpoint) { @@ -740,7 +743,8 @@ export class WS2PCluster { private numberOfFreeRooms( p: PeerDTO, canReachTorEndpoint: boolean, - canReachClearEndpoint: boolean + canReachClearEndpoint: boolean, + isMember: boolean ) { const api = p.getOnceWS2PEndpoint( canReachTorEndpoint, @@ -764,7 +768,7 @@ export class WS2PCluster { freeMemberRoom, freeMirorRoom, ]: string[] = messageV2.split(":"); - return this.server.dal.isMember(this.server.conf.pair.pub) + return isMember ? freeMemberRoom : freeMirorRoom; } -- GitLab