1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00
openmptcprouter-feeds/qaa/qca/net/qca-hostap/files/wps-hotplug.sh
2022-09-10 05:47:47 +08:00

69 lines
2.1 KiB
Bash

#
# Copyright (c) 2017 Qualcomm Technologies, Inc.
# All Rights Reserved.
# Confidential and Proprietary - Qualcomm Technologies, Inc.
#
#
# Copyright (c) 2014, The Linux Foundation. All rights reserved.
#
send_to_son()
{
local staname1
local staname2
local ret
local pattern
local count
[ -r /var/run/son.conf ] || return 0
staname1=$(grep sta /var/run/son.conf | head -n 1 | cut -f3 -d" " )
staname2=$(grep sta /var/run/son.conf | tail -n 1 | cut -f3 -d" " )
echo "$staname1 $staname2"
count=0
pattern="Not-Associated"
for sta in $staname1 $staname2;do
result=$(iwconfig $sta | head -2 | tail -1 | grep -o "Not-Associated")
if [ $result == $pattern ];then
count=$((count+1))
fi
done
if [ $count -lt 2 ];then
echo "Sending to son"
echo "wps_pbc $SEEN" > /var/run/sonwps.pipe &
touch /var/run/son_active
ret=1
else
ret=0
echo "Son not processing push - sta not connected"
fi
return $ret
}
if [ "$ACTION" = "pressed" -a "$BUTTON" = "wps" ]; then
echo "" > /dev/console
echo "WPS PUSH BUTTON EVENT DETECTED" > /dev/console
# cleanup old file
rm -f /var/run/son_active
#check for son.conf - if not there exit
# ret is 1 if push is consumed by son , if ret == 0 continue to next scripts
send_to_son
ret=$?
[ $ret -eq 1 ] && exit 0
# Son did not process the push call wps-extender if confgured
# If multi node wps is enabled then wps-extender will not process the push.
if [ -r /var/run/wifi-wps-enhc-extn.conf ] &&
[ ! -r /var/run/son.conf ]; then
exit 0
fi
# son and wps_extender are not processing the push
for dir in /var/run/hostapd-*; do
[ -d "$dir" ] || continue
for vap_dir in $dir/ath* $dir/wlan*; do
[ -r "$vap_dir" ] || continue
nopbn=`cfg80211tool "${vap_dir#"$dir/"}" get_nopbn | cut -d':' -f2`
if [ $nopbn != 1 ]; then
hostapd_cli -i "${vap_dir#"$dir/"}" -p "$dir" wps_pbc
fi
done
done
fi