hostapd: execute a command when there is new connection established
I need to start an arbitrary daemon when at least one WiFi network connection exists (from clients). And stop an arbitrary daemon when there is no more connections to this AP. How to do it efficiently?
For now I consider polling the results of hostapd_cli all_sta
, but it seems odd. I'm sure there must be some system event which can be hooked.
Solution 1:
As @beemaster said run this:
hostapd_cli -a '/onHostapdChange.sh'
With the script: onHostapdChange.sh
#!/bin/bash
if [[ $2 == "AP-STA-CONNECTED" ]]
then
echo "someone has connected with mac id $3 on $1"
fi
if [[ $2 == "AP-STA-DISCONNECTED" ]]
then
echo "someone has disconnected with mac id $3 on $1"
fi
Solution 2:
For now I've found the following solution:
hostapd_cli -a 'some_script'
Where script receives network interface name and event type as an arguments. This must be started after hostapd
daemon. Also it needs ctrl_interface
to be set in hostapd.conf
.