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