diff --git a/files/lib/gluon/ssid-changer/ssid-changer.sh b/files/lib/gluon/ssid-changer/ssid-changer.sh index 6671f8e917bccaf5c2146a8aeaf5de1b03400312..b0648409a52d6e2383377c3cb83d31f16beafc46 100755 --- a/files/lib/gluon/ssid-changer/ssid-changer.sh +++ b/files/lib/gluon/ssid-changer/ssid-changer.sh @@ -1,9 +1,11 @@ #!/bin/sh # at first some Definitions: +MINUTES=1440 # only once every this timeframe the SSID will change to OFFLINE +OFFLINE_PREFIX='FF_OFFLINE_' # use something short to leave space for the nodename (no '~' allowed!) + ONLINE_SSID=$(uci get wireless.client_radio0.ssid -q) : ${ONLINE_SSID:="FREIFUNK"} # if for whatever reason ONLINE_SSID is NULL -OFFLINE_PREFIX='FF_OFFLINE_' # use something short to leave space for the nodename (no '~' allowed!) # Generate an Offline SSID with the first and last part of the nodename to allow owner to recognise wich node is down NODENAME=`uname -n` @@ -18,14 +20,22 @@ fi CHECK=$(batctl gwl -H|grep -v "gateways in range"|wc -l) if [ $CHECK -eq 0 ] ; then - if [ "$(uci get wireless.client_radio0.ssid)" == "$OFFLINE_SSID" ] ; then echo "$0 - still on $OFFLINE_SSID" ; exit 0 ; fi - echo "$0 change ssid to $OFFLINE_SSID" | logger - uci set wireless.client_radio0.ssid="$OFFLINE_SSID" - sed -i s~^ssid=$ONLINE_SSID~ssid=$OFFLINE_SSID~ /var/run/hostapd-phy0.conf - killall -HUP hostapd + if [ $(expr $(date "+%s") / 60 % $MINUTES) -eq 0 ]; then + if [ "$(uci get wireless.client_radio0.ssid)" == "$OFFLINE_SSID" ]; then + echo "$0 - still on $OFFLINE_SSID" + exit 0 + fi + echo "$0 change ssid to $OFFLINE_SSID" | logger + uci set wireless.client_radio0.ssid="$OFFLINE_SSID" + sed -i s~^ssid=$ONLINE_SSID~ssid=$OFFLINE_SSID~ /var/run/hostapd-phy0.conf + killall -HUP hostapd + fi fi if [ $CHECK -gt 0 ] ; then - if [ "$(uci get wireless.client_radio0.ssid)" == "$ONLINE_SSID" ] ; then echo "$0 - still on $ONLINE_SSID" ; exit 0 ; fi + if [ "$(uci get wireless.client_radio0.ssid)" == "$ONLINE_SSID" ]; then + echo "$0 - still on $ONLINE_SSID" + exit 0 + fi echo "$0 change ssid to $ONLINE_SSID"| logger uci set wireless.client_radio0.ssid="$ONLINE_SSID" sed -i s~^ssid=$OFFLINE_SSID~ssid=$ONLINE_SSID~ /var/run/hostapd-phy0.conf