From 5dda961dbb43ac1d05a8d37889875a1630260e91 Mon Sep 17 00:00:00 2001 From: James Smith Date: Sun, 3 May 2026 12:42:42 +0100 Subject: [PATCH] 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 --- utils/drone/remote_id.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utils/drone/remote_id.py b/utils/drone/remote_id.py index 8238866..a4143db 100644 --- a/utils/drone/remote_id.py +++ b/utils/drone/remote_id.py @@ -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)