From 4b6978f7ccfdc1fe1a26fe226e2cd6a6b94945f0 Mon Sep 17 00:00:00 2001 From: liamcottle Date: Thu, 2 Jan 2025 17:13:37 +1300 Subject: [PATCH] add setting to enable and disable transport mode --- meshchat.py | 25 ++++++++++++ .../components/settings/SettingsPage.vue | 39 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/meshchat.py b/meshchat.py index 85f9433..6f1b9a9 100644 --- a/meshchat.py +++ b/meshchat.py @@ -779,6 +779,30 @@ class ReticulumMeshChat: "config": self.get_config_dict(), }) + # enable transport mode + @routes.post("/api/v1/reticulum/enable-transport") + async def index(request): + + # enable transport mode + self.reticulum.config["reticulum"]["enable_transport"] = True + self.reticulum.config.write() + + return web.json_response({ + "message": "Transport has been enabled. MeshChat must be restarted for this change to take effect.", + }) + + # disable transport mode + @routes.post("/api/v1/reticulum/disable-transport") + async def index(request): + + # disable transport mode + self.reticulum.config["reticulum"]["enable_transport"] = False + self.reticulum.config.write() + + return web.json_response({ + "message": "Transport has been disabled. MeshChat must be restarted for this change to take effect.", + }) + # get calls @routes.get("/api/v1/calls") async def index(request): @@ -2006,6 +2030,7 @@ class ReticulumMeshChat: "identity_hash": self.identity.hexhash, "lxmf_address_hash": self.local_lxmf_destination.hexhash, "audio_call_address_hash": self.audio_call_manager.audio_call_receiver.destination.hexhash, + "is_transport_enabled": self.reticulum.transport_enabled(), "auto_announce_enabled": self.config.auto_announce_enabled.get(), "auto_announce_interval_seconds": self.config.auto_announce_interval_seconds.get(), "last_announced_at": self.config.last_announced_at.get(), diff --git a/src/frontend/components/settings/SettingsPage.vue b/src/frontend/components/settings/SettingsPage.vue index e6d474a..c627124 100644 --- a/src/frontend/components/settings/SettingsPage.vue +++ b/src/frontend/components/settings/SettingsPage.vue @@ -37,6 +37,25 @@ + +
+
Transport Mode
+
+ +
+
+
+ +
+ +
+
When enabled, MeshChat will route traffic for other peers, respond to path requests and pass announces over your interfaces.
+
Changing this setting requires you to restart MeshChat.
+
+ +
+
+
Messages
@@ -150,6 +169,7 @@