fix(hbp): keep MASTER PEERS dict aliased on peer timeout

pull/4/head
Rodrigo Pérez 4 months ago
parent 2b41ad96d1
commit e0d21901e2

@ -176,7 +176,7 @@ class HBPProtocol(DatagramProtocol):
self._laststrid = {1: b"", 2: b""}
self.STATUS = {1: _make_slot_status(), 2: _make_slot_status()}
if self._config.get("MODE") == "MASTER":
self._peers = self._config.get("PEERS", {})
self._peers = self._config.setdefault("PEERS", {})
self._dmra_by_stream: dict[bytes, dict[str, Any]] = {}
self._dmra_rf_stream: dict[tuple[bytes, bytes], bytes] = {}
else:
@ -225,7 +225,7 @@ class HBPProtocol(DatagramProtocol):
sys_cfg = config.get("SYSTEMS", {}).get(self._system, {})
self._config = sys_cfg
if sys_cfg.get("MODE") == "MASTER":
self._peers = sys_cfg.get("PEERS", {})
self._peers = sys_cfg.setdefault("PEERS", {})
# ── Exact port of hblink.py send_peers / send_peer / send_master / send_system ──
@ -475,8 +475,8 @@ class HBPProtocol(DatagramProtocol):
self._system, self._peers[peer].get("CALLSIGN", b""), self._peers[peer].get("RADIO_ID", b""),
)
self.transport.write(b"".join([MSTCL, peer]), self._peers[peer]["SOCKADDR"])
del self._CONFIG["SYSTEMS"][self._system]["PEERS"][peer]
if not self._CONFIG["SYSTEMS"][self._system]["PEERS"]:
del self._peers[peer]
if not self._peers:
sys_cfg = self._CONFIG["SYSTEMS"][self._system]
if "OPTIONS" in sys_cfg:
if "_default_options" in sys_cfg:

Loading…
Cancel
Save

Powered by TurnKey Linux.