#!/bin/sh # $Id: waproamd.init.in 16 2003-10-08 23:49:41Z lennart $ # This file is part of waproamd. # # waproamd is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your # option) any later version. # # waproamd is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with waproamd; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. #/bin/sleep 3 CFG=/etc/default/waproamd WAPROAMD=/usr/sbin/waproamd test -x $WAPROAMD || exit 0 if [ `id -u` != "0" ] && [ "$1" = "start" -o "$1" = "stop" ] ; then echo "You must be root to start, stop or restart waproamd." exit 1 fi [ -f $CFG ] && . $CFG # sets INTERFACES ^^^ # wait til ETH1 exists... found=0 for second in 0 1 2 3 4 5; do /sbin/ifconfig $INTERFACES >& /tmp/test.$$ if ((`egrep -ci "Device not found" /tmp/test.$$`)) ; then # we wait for orinoco_cs to come up! echo -n "." sleep 1 continue fi found=1 break done rm /tmp/test.$$ VERB="$1" shift [ "x$@" != "x" ] && INTERFACES="$@" [ "x$INTERFACES" = "xauto" -o "x$INTERFACES" = "xall" ] && INTERFACES="`cat /proc/net/dev | awk '{ print $1 }' | egrep '^wlan' | cut -d: -f1`" case "$VERB" in start) # check if no broadcasts found first... set to "any" for scan to work!!! for IF in $INTERFACES ; do #echo /sbin/iwconfig $IF essid any key off # /sbin/iwconfig $IF essid any key off # eth1 must be UP for scanning to work!!!!!!!!!! /sbin/ifconfig $IF up done echo $IF is if #sleep 1 # before we scan, let it sit for a second found="0" for second in 0 1 2 3 4 5; do /sbin/iwlist scanning >& /tmp/test.$$ if ((`egrep -ci "No scan results|Input/Output" /tmp/test.$$`)) ; then # we only get INPUT/OUTPUT error IF eth1 is down... echo -n "." sleep 1 # scan doesnt always work right away... continue fi found=1 break done rm /tmp/test.$$ echo #echo found is $found #exit if [ $found == 0 ]; then echo "Calling bruteforce..." exec /bin/csh -f /etc/waproamd/bruteforce exit 1 else echo "ap found" fi echo -n "Starting Wireless Access Point Roaming Daemon:" for IF in $INTERFACES ; do A="`eval echo \$\{ARGS_${IF}\}`" [ -z "$A" ] && A="$ARGS" $WAPROAMD -i $IF $A echo -n " $IF" done echo "." ;; stop) echo -n "Stopping Wireless Access Point Roaming Daemon:" for IF in $INTERFACES ; do $WAPROAMD -k -i $IF echo -n " $IF" done echo "." ;; status) for IF in $INTERFACES ; do $WAPROAMD -c -i $IF done ;; force-reload|restart) $0 stop $INTERFACES sleep 3 $0 start $INTERFACES ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status}" exit 1 esac exit 0