mir3c/squashfs-root/usr/sbin/iwevent-call
2018-05-25 14:19:31 +05:30

89 lines
2.7 KiB
Bash
Executable File

#!/bin/sh
export HOTPLUG_TYPE="$1"
. /lib/functions.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LOGNAME=root
USER=root
export PATH LOGNAME USER
if [ -f /tmp/iwevent_log ]; then
iwevent_log="y"
else
iwevent_log="n"
fi
# /* system status event */
# "had associated successfully", /* IW_ASSOC_EVENT_FLAG */
# "had disassociated", /* IW_DISASSOC_EVENT_FLAG */
# "had deauthenticated", /* IW_DEAUTH_EVENT_FLAG */
# "had been aged-out and disassociated", /* IW_AGEOUT_EVENT_FLAG */
# "occurred CounterMeasures attack", /* IW_COUNTER_MEASURES_EVENT_FLAG */
# "occurred replay counter different in Key Handshaking", /* IW_REPLAY_COUNTER_DIFF_EVENT_FLAG */
# "occurred RSNIE different in Key Handshaking", /* IW_RSNIE_DIFF_EVENT_FLAG */
# "occurred MIC different in Key Handshaking", /* IW_MIC_DIFF_EVENT_FLAG */
# "occurred ICV error in RX", /* IW_ICV_ERROR_EVENT_FLAG */
# "occurred MIC error in RX", /* IW_MIC_ERROR_EVENT_FLAG */
# "Group Key Handshaking timeout", /* IW_GROUP_HS_TIMEOUT_EVENT_FLAG */
# "Pairwise Key Handshaking timeout", /* IW_PAIRWISE_HS_TIMEOUT_EVENT_FLAG */
# "RSN IE sanity check failure", /* IW_RSNIE_SANITY_FAIL_EVENT_FLAG */
# "set key done in WPA/WPAPSK", /* IW_SET_KEY_DONE_WPA1_EVENT_FLAG */
# "set key done in WPA2/WPA2PSK", /* IW_SET_KEY_DONE_WPA2_EVENT_FLAG */
# "connects with our wireless client", /* IW_STA_LINKUP_EVENT_FLAG */
# "disconnects with our wireless client", /* IW_STA_LINKDOWN_EVENT_FLAG */
# "scan completed" /* IW_SCAN_COMPLETED_EVENT_FLAG */
# "scan terminate! Busy! Enqueue fail!" /* IW_SCAN_ENQUEUE_FAIL_EVENT_FLAG */
while read msg
do
[ "$iwevent_log" == "y" ] && logger "$msg"
eval $(lua -e "local s, e, time, dev, sta, event = \
string.find('$msg','^(%S+)%s+(%S+)%s+Custom driver event:.*STA%((.*)%)%s+(.*)$') \
if s then \
print(string.format('\
TIME=\'%s\'; \
DEVNAME=\'%s\'; \
STA=\'%s\'; \
EVENT=\'%s\'', \
time, dev, sta, event)) \
else \
print('EVENT=\'\'') \
end ")
ACTION=""
if [ "$EVENT" = "had associated successfully" ]; then
ACTION="ASSOC"
fi
if [ "$EVENT" = "had disassociated" ] ||
[ "$EVENT" = "had deauthenticated" ]; then
ACTION="DISASSOC"
fi
if [ "$EVENT" = "blacklisted in MAC filter list" ]; then
ACTION="BLACKLISTED"
fi
if [ "$EVENT" = "had authorized successfully" ] ||
[ "$EVENT" = "set key done in WPA/WPAPSK" ] ||
[ "$EVENT" = "set key done in WPA2/WPA2PSK" ]; then
ACTION="AUTHORIZE"
fi
if [ "$EVENT" = "occurred MIC different in Key Handshaking" ]; then
ACTION="MIC_DIFF"
fi
[ -n "$ACTION" -a -d /etc/iwevent.d ] && {
export TIME DEVNAME STA EVENT ACTION
for script in $(ls /etc/iwevent.d/* 2>&-); do (
[ -f $script ] && . $script
); done
}
done