diff options
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/roster.py')
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/roster.py | 11 |
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, |