summaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/roster.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/roster.py')
-rw-r--r--packages/meshbay-node/src/meshbay_node/roster.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/roster.py b/packages/meshbay-node/src/meshbay_node/roster.py
index cf0d421..5bdb5ee 100644
--- a/packages/meshbay-node/src/meshbay_node/roster.py
+++ b/packages/meshbay-node/src/meshbay_node/roster.py
@@ -764,9 +764,11 @@ class Roster:
SETTING_DEVICE_TTL = "device_request_ttl_minutes"
SETTING_MAX_STREAMS = "max_concurrent_streams"
SETTING_TRANSCODE = "transcode_incompatible_video"
+ SETTING_STUN_SERVERS = "stun_servers"
async def node_settings(self, defaults: dict) -> dict:
"""Current effective settings: roster override if present, else config default."""
+ import json as _json
result = {}
for key, setting in [
("invite_ttl_hours", self.SETTING_INVITE_TTL),
@@ -783,6 +785,15 @@ class Roster:
result[key] = int(stored)
else:
result[key] = defaults.get(key)
+ stored = await self.get_setting(self.NODE_WIDE_GROUP_ID,
+ self.SETTING_STUN_SERVERS)
+ if stored is not None:
+ try:
+ result["stun_servers"] = _json.loads(stored)
+ except (ValueError, TypeError):
+ result["stun_servers"] = defaults.get("stun_servers", [])
+ else:
+ result["stun_servers"] = defaults.get("stun_servers", [])
return result
async def set_node_setting(self, key: str, value: str,