]> git.donarmstrong.com Git - bin.git/blob - cycle_wireless
add cycle wireless
[bin.git] / cycle_wireless
1 #!/bin/sh
2
3 NETWORK="$1"
4 WIRELESS="$2"
5
6 if [ -z "$NETWORK" ]; then
7         NETWORK="homewlan";
8 fi;
9
10 if [ -z "$WIRELESS" ]; then
11         WIRELESS="wireless";
12 fi;
13
14 # First try a minor cycle
15
16 ESSID=$(/sbin/iwconfig "$WIRELESS" 2>/dev/null |grep ESSID |perl -ne 'm/\"([^\"]+)\"/ && print $1,qq(\n)')
17
18 if [ -n "$ESSID" ]; then
19     sudo iwconfig "$WIRELESS" essid "$ESSID"
20     sleep 1s;
21     if /sbin/iwconfig "$WIRELESS" 2>/dev/null | grep 'Bit Rate'|grep -qv '=1 Mb/s'; then
22         exit 0
23     fi;
24 fi;
25
26 # Failure, so major cycle
27 sudo ifdown wireless;
28 if [ "$WIRELESS" == "wireless" ]; then 
29     sudo modprobe -r bcm43xx;
30     sudo modprobe bcm43xx;
31 fi;
32 sudo ifup "wireless=${NETWORK}";