Kismet 2019-07-R1 is here!
This release contains some enhancements to the UI, but primarily contains significant fixes for stability in the threading and IPC systems.
Kismet now exposes the device view system to the UI; the main device list can be switched between all devices (the default, and only view in previous releases), Wi-Fi access points (only devices advertising as an AP), per-datasource devices, and per-phy devices. All the normal sorting, filtering, etc options apply, no matter which view is active.
The vast majority of the changes in this release are focused on fixing timing bugs and some subtle memory use-after-free related timing issues between threads.
Internally, Kismet now uses additional service threads to handle repeating events: the timer system and message system are now independent threads to prevent locking loops, and signals are blocked from all normal threads and processed sequentially in a dedicated signals thread.
Threads are now (generally) named to clarity in debugging.
Locks are now shared between related components, reducing the overall number of interacting locking conditions, especially in nested stacks of components like the External API -> IPC -> Pipe2 -> Buffer stack-up which has multiple entry points and timing areas.
Upgrading should happen automatically if you use the Kismet packages, otherwise install the new version from the download page. Make sure you do a
make forceconfigs to get the latest config versions; if you use the kismet_site.conf config you won’t need to make any other changes; otherwise you’ll need to make any edits to the config files you made before.
If you’re looking to package Kismet, have a look at the packaging guidelines.