[Guessnet-devel] [svn] r113 - in trunk: debian scripts

Thomas Hood guessnet-devel@lists.alioth.debian.org
Mon, 02 May 2005 12:12:04 +0000


Author: jdthood-guest
Date: Mon May  2 12:12:03 2005
New Revision: 113

Modified:
   trunk/debian/changelog
   trunk/scripts/test-wireless-ap
Log:
Fix test-wireless-ap

Modified: trunk/debian/changelog
==============================================================================
--- trunk/debian/changelog	(original)
+++ trunk/debian/changelog	Mon May  2 12:12:03 2005
@@ -4,6 +4,7 @@
     uses the ip command  (Closes: #294346)
   * Remove resolvconf-related material from /etc/network/interfaces
     example stanzas  (Closes: #297836)
+  * Make test-wireless-ap handle MAC properly (Closes: #286835)
 
  -- Thomas Hood <jdthood@yahoo.co.uk>  Wed,  2 May 2005 12:00:00 +0200
 

Modified: trunk/scripts/test-wireless-ap
==============================================================================
--- trunk/scripts/test-wireless-ap	(original)
+++ trunk/scripts/test-wireless-ap	Mon May  2 12:12:03 2005
@@ -14,6 +14,7 @@
 # Licensed under the GNU GPL.  See /usr/share/common-licenses/GPL.
 #
 # History
+# May 2005: Bugs fixed by Christoph Biedl and Thomas Hood
 # Nov 2003: Modified by Thomas Hood and Klaus Wacker
 # July 2003: Modified by Thomas Hood to support Aironet cards
 # June 2003: Modified by John Fettig <jfettig@uiuc.edu>
@@ -26,6 +27,9 @@
 MYNAME="$(basename $0)"
 PATH=/sbin:/bin
 
+ESSID=""
+MAC_ADDRESS=""
+
 report_err() { echo "${MYNAME}: Error: $*" >&2 ; }
 
 do_sleep() { LANG=C sleep "$@" ; }
@@ -38,7 +42,7 @@
 extract_ESSID()
 {
 	while [ "$1" ] ; do
-		[ "$1" != "essid" ] || { ESSID="$2" ; return ; }
+		[ "$1" = "essid" ] && { ESSID="$2" ; return 0 ; }
 		shift
 	done
 }
@@ -64,31 +68,32 @@
 ifconfig "$IFACE" up
 
 for (( TIMELEFT="$TIMEOUT" ; TIMELEFT > 0 ; TIMELEFT-- )) ; do
-	(  # Notice that we are in a subshell here so exiting takes us to the end of it
-		if [ "$ESSID" ] ; then
-			# Check to see if interface ESSID is what we are looking for
-			ESSID_OF_INTERFACE="$(iwgetid $IFACE)"
-			ESSID_OF_INTERFACE="${ESSID_OF_INTERFACE#*ESSID:}"
-			ESSID_OF_INTERFACE="${ESSID_OF_INTERFACE# }"
-			ESSID_OF_INTERFACE="${ESSID_OF_INTERFACE#\"}"
-			ESSID_OF_INTERFACE="${ESSID_OF_INTERFACE%\"}"
-			[ "$ESSID_OF_INTERFACE" = "$ESSID" ] || exit 1
-		fi
-		# Check for a valid AP MAC address
-		APMAC="$(iwgetid $IFACE --ap --scheme)"
-		[ "$APMAC" ] || exit 1
-		[ "$APMAC" != "FF:FF:FF:FF:FF:FF" ] || exit 1
-		[ "$APMAC" != "ff:ff:ff:ff:ff:ff" ] || exit 1
-		[ "$APMAC" != "44:44:44:44:44:44" ] || exit 1
-		[ "$APMAC" != "00:00:00:00:00:00" ] || exit 1
-		exit 0
-	)
-	if [ "$?" = 0 ] ; then
+	FAILED=0
+	if [ "$ESSID" ] ; then
+		# Check that interface ESSID is what we are looking for
+		ACTUAL_ESSID="$(iwgetid $IFACE)"
+		ACTUAL_ESSID="${ACTUAL_ESSID#*ESSID:}"
+		ACTUAL_ESSID="${ACTUAL_ESSID# }"
+		ACTUAL_ESSID="${ACTUAL_ESSID#\"}"
+		ACTUAL_ESSID="${ACTUAL_ESSID%\"}"
+		[ "$ACTUAL_ESSID" = "$ESSID" ] || FAILED=1
+	fi
+	if [ "$FAILED" = 0 ] && [ "$MAC_ADDRESS" ] ; then
+		# Check that access point MAC address is what we are looking for
+		ACTUAL_MAC_ADDRESS="$(iwgetid $IFACE --ap --scheme)"
+		case "$ACTUAL_MAC_ADDRESS" in
+		  "FF:FF:FF:FF:FF:FF"|"ff:ff:ff:ff:ff:ff"|"44:44:44:44:44:44"|"00:00:00:00:00:00")
+			ACTUAL_MAC_ADDRESS=""
+			;;
+		esac
+		[ "$ACTUAL_MAC_ADDRESS" = "$MAC_ADDRESS" ] || FAILED=1
+	fi
+	if [ "$FAILED" = 0 ] ; then
 		ifconfig "$IFACE" down
-		[ ! "$MAC_ADDRESS" ] || [ "$APMAC" = "$MAC_ADDRESS" ] || exit 1
 		exit 0
 	fi
 	do_sleep 1
 done
+# Out of time
 ifconfig "$IFACE" down
 exit 1