Remove some unneeded duplication and fix up reconnection management

This commit is contained in:
Jack Kingsman
2026-01-30 21:03:58 -08:00
parent b6c3e13234
commit 1ea809c4e3
16 changed files with 50 additions and 152 deletions
+15 -9
View File
@@ -107,6 +107,20 @@ class RadioManager:
self._last_connected: bool = False
self._reconnect_lock: asyncio.Lock | None = None
async def post_connect_setup(self) -> None:
"""Register event handlers, export private key, and start message fetching.
Called after every successful connection or reconnection.
"""
from app.event_handlers import register_event_handlers
from app.keystore import export_and_store_private_key
if self._meshcore:
register_event_handlers(self._meshcore)
await export_and_store_private_key(self._meshcore)
await self._meshcore.start_auto_message_fetching()
logger.info("Post-connect setup complete (handlers, key export, message fetching)")
@property
def meshcore(self) -> MeshCore | None:
return self._meshcore
@@ -229,15 +243,7 @@ class RadioManager:
# Attempt reconnection
await asyncio.sleep(3) # Wait a bit before trying
if await self.reconnect():
# Re-register event handlers after successful reconnect
from app.event_handlers import register_event_handlers
from app.keystore import export_and_store_private_key
if self._meshcore:
register_event_handlers(self._meshcore)
await export_and_store_private_key(self._meshcore)
await self._meshcore.start_auto_message_fetching()
logger.info("Event handlers re-registered after auto-reconnect")
await self.post_connect_setup()
elif not self._last_connected and current_connected:
# Connection restored (might have reconnected automatically)