commit 2b14714c13931b097c11ae28c92da9118e5e292e
parent 2becc1cb27c1501aaf7bc9da2b585bd3bffe41a0
Author: Christoph Lohmann <20h@r-36.net>
Date: Sun, 27 Feb 2011 10:21:32 +0100
Fixing some state related bug. State is now live.
Diffstat:
2 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/etc/conn/common.sh b/etc/conn/common.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-LOGGING=0
-DEBUG=0
+LOGGING=1
+DEBUG=1
# If none is set, a connection always needs to be specified.
DEFAULTCONNECTION="wifi"
@@ -102,18 +102,20 @@ WPACLICMD="/usr/sbin/wpa_cli"
WPACLIREQ="/usr/sbin/wpa_cli"
startwpa() {
- $WPACMD -P $WPAPID.$1 -i $1
+ $WPACMD -i $1
$WPACLICMD -i $1 -a $WIFIDIR/$1-action.sh 2>&1 >/dev/null &
- echo $! > $WPACLIPID.$1
}
hupwpa() {
- [ -e $WPAPID.$1 ] && /bin/kill -HUP `cat $WPAPID.$1`
+ PID=`pgrep -f "$WPACMD -i $1"`
+ [ ! -z "$PID" ] && kill -HUP $PID
}
stopwpa() {
- [ -e $WPAPID.$1 ] && /bin/kill -KILL `cat $WPAPID.$1`
- [ -e $WPACLIPID.$1 ] && /bin/kill -KILL `cat $WPACLIPID.$1`
+ PID=`pgrep -f "$WPACMD -i $1"`
+ [ ! -z "$PID" ] && kill -KILL $PID
+ PID=`pgrep -f "$WPACLICMD -i $1 $WIFIDIR/$1-action.sh"`
+ [ ! -z "$PID" ] && kill -KILL $PID
}
# $WPA_ID must be set from within the calling action script.
diff --git a/etc/conn/run.sh b/etc/conn/run.sh
@@ -89,7 +89,7 @@ then
exit 0
fi
-[ $dowakeup -eq 1 ] && cmdarg="-s"
+[ $dowakeup -eq 1 ] && cmdarg="-f -s"
if [ $dosuspend -eq 1 ];
then
@@ -139,7 +139,16 @@ fi
if [ ! $doforce -eq 1 ];
then
- [ $dostart -eq 1 ] && addconnection $connection $profile
+ if [ $dostart -eq 1 ];
+ then
+ if isopen $connection $profile;
+ then
+ echo "Connection $connection $profile is already open"
+ echo "Use -k or -f for killing it."
+ exit 1
+ fi
+ addconnection $connection $profile
+ fi
[ $dokill -eq 1 ] && delconnection $connection $profile
fi