wifilife: nodefinder to form neighbor table if scan fails

This commit is contained in:
Sukru Senli 2018-10-20 10:41:28 +02:00
parent 8b60cb1ab3
commit ec14c79368
3 changed files with 30 additions and 0 deletions

View file

@ -60,6 +60,7 @@ define Package/wifilife/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/wifiagent $(1)/usr/sbin/
$(INSTALL_BIN) ./files/nodexcluder $(1)/usr/sbin/
$(INSTALL_BIN) ./files/nodefinder $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,wifilife))

27
wifilife/files/nodefinder Executable file
View file

@ -0,0 +1,27 @@
#!/bin/sh
if [ -f /tmp/nodefinder.pid ]; then
kill -9 $(cat /tmp/nodefinder.pid) 2>/dev/null
rm -f /tmp/nodefinder.pid
fi
[ "$1" == "stop" ] && exit
radio5g=$(uci show wireless | grep "band='a'" | cut -d'.' -f2)
wiface5g=$(uci show wireless | grep wifi-iface | grep "device='$radio5g'" | head -1 | cut -d'.' -f2)
ifname5g="$(uci -q get wireless.$wiface5g.ifname)"
ssid5g="$(uci -q get wireless.$wiface5g.ssid)"
[ -n "$ssid5g" -a -n "$ifname5g" ] || exit
[ "$(uci -q get owsd.ubusproxy.enable)" == "1" ] || exit
[ -f /usr/sbin/wlctl ] || exit
while true; do
for wifix in $(ubus list | grep "/wifix"); do
mac5g=$(ubus call $wifix status '{"vif":"rai0"}' | grep bssid | awk '{print$2}' | tr -d '",')
wlctl -i $ifname5g rrm_nbr_list | grep -qi "$mac5g" || ubus call wifix scan "{\"radio\":\"$radio5g\",\"ssid\":\"$ssid5g\"}"
done
sleep 10
done &
echo $! >/tmp/nodefinder.pid

View file

@ -21,11 +21,13 @@ start_service() {
procd_close_instance
nodexcluder
nodefinder
}
stop_service()
{
nodexcluder stop
nodefinder stop
service_stop ${PROG}
}