fix(drone): assign self._sniffer only after successful AsyncSniffer.start()

Prevents a non-running sniffer object being stored when start() raises
(e.g. permission denied or interface not found).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
James Smith
2026-05-03 12:42:42 +01:00
parent a6ce5d5426
commit 5dda961dbb
+3 -2
View File
@@ -101,13 +101,14 @@ class RemoteIDScanner:
self._running = True
if SCAPY_AVAILABLE and wifi_iface:
try:
self._sniffer = AsyncSniffer(
sniffer = AsyncSniffer(
iface=wifi_iface,
filter="type mgt subtype beacon",
prn=self._on_wifi_packet,
store=False,
)
self._sniffer.start()
sniffer.start()
self._sniffer = sniffer
logger.info("WiFi Remote ID sniffer started on %s", wifi_iface)
except Exception as exc:
logger.warning("WiFi Remote ID sniffer failed to start: %s", exc)