# # 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