#!/bin/bash

TARGET="223.5.5.5"

INTERVAL=20

while true; do
  sleep "$INTERVAL"
  if ping -c 1 "$TARGET" &> /dev/null; then
    echo "network OK"
  else
    SSID=`uci get wireless.@wifi-iface[0].ssid`
    if [ -z "$SSID" ]; then
      echo "ssid not found"
      continue
    fi
    MAC0=`uci get wireless.@wifi-iface[0].bssid`
    MAC1=`iwinfo radio0 scan|grep -B 1 $SSID|grep Address| cut -d' ' -f 5`
    if [ -n "$MAC1" ]; then
      if [ "$MAC0" != "$MAC1" ]; then
        uci set wireless.@wifi-iface[0].bssid="$MAC1"
        uci commit wireless
        wifi reload
        echo "change bssid"
      fi
    fi
  fi
done

