Package: guessnet
Version: 0.41-1
Severity: wishlist
Tags: patch

I'm including the scripts test-wireless, test-wireless-ap,
test-wirelsess-scan with an --help interface implemented in bare
sh. Other than this addition, the beahaviour of the scripts is the
same.

Thanks for guessnet.
Cheers.

-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17.11.061003.eramil
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages guessnet depends on:
ii  libc6                         2.3.6-7    GNU C Library: Shared libraries
ii  libgcc1                       1:4.1.1-13 GCC support library
ii  libnet1                       1.1.2.1-2  library for the construction and h
ii  libpcap0.7                    0.7.2-7    System interface for user-level pa
ii  libstdc++6                    4.1.1-13   The GNU Standard C++ Library v3

guessnet recommends no packages.

-- no debconf information
#!/bin/sh 
#
# test-wireless
# History
# Oct 2004: Written by Thomas Hood

set -o errexit   # -e
set -o noglob    # -f

MYNAME="$(basename $0)"
PATH=/sbin:/bin

usage() {
    cat <<EOT
Usage:
   $MYNAME <IFACE> [mac <MACADDRESS>] [essid <ESSID>]
   $MYNAME --help|-h

Tests whether the current interface has the appropriate MAC address
and/or the appropriate ESSID.

MACADDRESS letters must be in upper case

Licensed under the GNU GPL.  See /usr/share/common-licenses/GPL.

Options:
            -h|--help      Print this help
EOT
}

report_err() { echo "${MYNAME}: Error: $*" >&2 ; }

do_sleep() { LANG=C sleep "$@" ; }

if [ "$1" = "--help" ] || [ "$1" == "-h" ]; then
        usage
        exit 0
fi

IFACE="$1"
[ "$IFACE" ] || { report_err "Interface not specified.  Exiting." ; exit 1 ; }
shift

while [ "$1" ] ; do
        case "$1" in
                mac)
                        MAC_ADDRESS="$2"
                        shift
                        ;;
                essid)
                        ESSID="$2"
                        shift
                        ;;
        esac
        shift
done

[ "$MAC_ADDRESS" ] || [ "$ESSID" ] || { report_err "Neither AP MAC address nor 
ESSID specified.  Exiting." ; exit 1 ; }

FAILED=0
do_sleep 0.5
if [ "$MAC_ADDRESS" ] ; then
        ACTUAL_MAC_ADDRESS="$(iwgetid "$IFACE" --ap)"
        ACTUAL_MAC_ADDRESS="${ACTUAL_MAC_ADDRESS#*Cell:}"
        ACTUAL_MAC_ADDRESS="${ACTUAL_MAC_ADDRESS# }"
        ACTUAL_MAC_ADDRESS="${ACTUAL_MAC_ADDRESS% }"
        [ "$ACTUAL_MAC_ADDRESS" = "$MAC_ADDRESS" ] || FAILED=1
fi

if [ "$FAILED" = 0 ] && [ "$ESSID" ] ; then
        ACTUAL_ESSID="$(iwgetid "$IFACE")"
        ACTUAL_ESSID="${ACTUAL_ESSID#*ESSID:\"}"
        ACTUAL_ESSID="${ACTUAL_ESSID%\"*}"
        [ "$ACTUAL_ESSID" = "$ESSID" ] || FAILED=1
fi
exit "$FAILED"

#!/bin/bash
# Need bash because we use ${.../...}
#
# test-wireless-ap
# 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 <[EMAIL PROTECTED]>
# Jan 2003:  Derived from testssid by Andrew McMillan <[EMAIL PROTECTED]>
#            Written by Thomas Hood <[EMAIL PROTECTED]>

set -o errexit   # -e
set -o noglob    # -f

MYNAME="$(basename $0)"
PATH=/sbin:/bin

ESSID=""
MAC_ADDRESS=""

usage() {
cat <<EOT
Usage:
    $MYNAME [--timeout=TIMEOUT] <IFACE> [<AP_MAC_ADDRESS>] [<IWCONFIG_ARG>]...
    $MYNAME --help|-h

Tests whether the wireless card can associate to an access
point using the given iwconfig argument pairs essid ESSID
key 123456 and so on.

Options:
        --help|-h   Print this help.
EOT
}

report_err() { echo "${MYNAME}: Error: $*" >&2 ; }

do_sleep() { LANG=C sleep "$@" ; }

is_ethernet_mac()
{
        [ "$1" ] && [ ! 
"${1/[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]/}"
 ]
}

# Set ESSID to string following 'essid' in the array of function arguments
extract_ESSID()
{
        while [ "$1" ] ; do
                [ "$1" = "essid" ] && { ESSID="$2" ; return 0 ; }
                shift
        done
}

if [ "$1" = "--help" ] || [ "$1" == "-h" ]; then
    usage
        exit 0
fi

TIMEOUT=3
case "$1" in
        --timeout) TIMEOUT="$2" ; shift 2 ;;
        --timeout=*) TIMEOUT="${1#--timeout=}" ; shift ;;
esac

IFACE="$1"
shift
[ "$IFACE" ] || { report_err "Interface not specified.  Exiting." ; exit 1 ; }

if is_ethernet_mac "$1" ; then
        MAC_ADDRESS="$1"
        shift
fi

extract_ESSID "$@"

[ "$1" ] && iwconfig "$IFACE" "$@"
ifconfig "$IFACE" up

for (( TIMELEFT="$TIMEOUT" ; TIMELEFT > 0 ; TIMELEFT-- )) ; do
        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
                exit 0
        fi
        do_sleep 1
done
# Out of time
ifconfig "$IFACE" down
exit 1
#!/bin/bash
#
# test-wireless-scan
#
# History
# Oct 2004: Written by Thomas Hood

set -o errexit   # -e
set -o noglob    # -f

MYNAME="$(basename $0)"
PATH=/sbin:/bin

usage() {
cat <<EOT
Usage: $MYNAME <IFACE> [mac <MACADDRESS>] [essid <ESSID>]
       $MYNAME --help|-h

Tests whether an access point is in range [with the appropriate
MAC address] [and appropriate ESSID] by looking at the output of
"iwlist IFACE scan".

MACADDRESS letters must be in upper case

Licensed under the GNU GPL.  See /usr/share/common-licenses/GPL.

Options:
        --help|-h     Print this help
EOT
}

report_err() { echo "${MYNAME}: Error: $*" >&2 ; }

do_sleep() { LANG=C sleep "$@" ; }

is_ethernet_mac()
{
        [ "$1" ] && [ ! 
"${1/[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]/}"
 ]
}

if [ "$1" = "--help" ] || [ "$1" == "-h" ]; then
    usage
    exit 0
fi

IFACE="$1"
[ "$IFACE" ] || { report_err "Interface not specified.  Exiting." ; exit 1 ; }
shift
while [ "$2" ] ; do
        case "$1" in
                mac)
                        is_ethernet_mac "$2" || { report_err "Argument of 'mac' 
is not a MAC address" ; exit 1 ; }
                        MAC_ADDRESS="$2"
                        ;;
                essid)
                        ESSID="$2"
                        ;;
        esac
        shift 2
done

[ "$MAC_ADDRESS" ] || [ "$ESSID" ] || { report_err "Neither AP MAC address nor 
ESSID specified.  Exiting." ; exit 1 ; }

ifconfig "$IFACE" up
do_sleep 0.5
SCAN="$(iwlist "$IFACE" scan 2>&1)"
ifconfig "$IFACE" down

shopt -s extglob  # We need this to allow the ?( ) syntax in patterns
[ "$SCAN" = "${SCAN/Interface doesn?t support scanning/}" ] || exit 1
[ "$SCAN" = "${SCAN/Operation not supported/}" ] || exit 1
if [ "$MAC_ADDRESS" ] ; then
        [ "$SCAN" != "${SCAN/Address:*( )$MAC_ADDRESS/}" ] || exit 1
fi
if [ "$ESSID" ] ; then
        [ "$SCAN" != "${SCAN/ESSID:*( )?${ESSID}?/}" ] || exit 1
fi
exit 0

Reply via email to