From 9c52187cb4c88b6d89c036311b068a71e6cdc921 Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Thu, 9 Mar 2023 12:11:24 -0300
Subject: [PATCH] Expose webserver port in AbstractMailbox

This is needed for integration tests of the API in Briar, so Briar knows what port to connect to (without having to go through Tor).
---
 .../org/briarproject/mailbox/lib/AbstractMailbox.kt    | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/mailbox-lib/src/main/java/org/briarproject/mailbox/lib/AbstractMailbox.kt b/mailbox-lib/src/main/java/org/briarproject/mailbox/lib/AbstractMailbox.kt
index bedad403..1304b708 100644
--- a/mailbox-lib/src/main/java/org/briarproject/mailbox/lib/AbstractMailbox.kt
+++ b/mailbox-lib/src/main/java/org/briarproject/mailbox/lib/AbstractMailbox.kt
@@ -26,6 +26,7 @@ import org.briarproject.mailbox.core.CoreEagerSingletons
 import org.briarproject.mailbox.core.MailboxLibEagerSingletons
 import org.briarproject.mailbox.core.db.TransactionManager
 import org.briarproject.mailbox.core.lifecycle.LifecycleManager
+import org.briarproject.mailbox.core.server.WebServerManager
 import org.briarproject.mailbox.core.setup.QrCodeEncoder
 import org.briarproject.mailbox.core.setup.SetupManager
 import org.briarproject.mailbox.core.setup.WipeManager
@@ -59,6 +60,9 @@ abstract class AbstractMailbox(protected val customDataDir: File? = null) {
     @Inject
     internal lateinit var setupManager: SetupManager
 
+    @Inject
+    internal lateinit var webserverManager: WebServerManager
+
     @Inject
     internal lateinit var wipeManager: WipeManager
 
@@ -131,5 +135,11 @@ abstract class AbstractMailbox(protected val customDataDir: File? = null) {
         return qrCodeEncoder.getLink()
     }
 
+    /**
+     * The port, the webserver has bound to.
+     * Accessing this will block the current thread until the port chosen by the webserver is known.
+     */
+    val port get() = webserverManager.port
+
     fun getSystem(): System = system
 }
-- 
GitLab