| 620 | } |
| 621 | |
| 622 | static String currentModeString() { |
| 623 | switch (currentMode) { |
| 624 | case SnifferMode::Full: return "Full Sniff"; |
| 625 | case SnifferMode::DeauthOnly: return "Deauth Frames"; |
| 626 | default: return "EAPOL/Handshakes"; |
| 627 | } |
| 628 | } |
| 629 | |
| 630 | static bool ensureSnifferBackend() { |
| 631 | if (!fileMutex) { fileMutex = xSemaphoreCreateMutexStatic(&fileMutexBuffer); } |