ifscheme.1.7/0002750000175000017500000000000010344166160013017 5ustar jeanjean00000000000000ifscheme.1.7/ifscheme0000750000175000017500000000635310317362570014540 0ustar jeanjean00000000000000#!/bin/sh -e # ifscheme changes network configuration schemes using ifup and ifdown # File locations OLD_IFSTATE=/etc/network/ifstate NEW_IFSTATE=/etc/network/run/ifstate INTERFACES=/etc/network/interfaces SCHEME=/etc/network/run/scheme usage () { echo "Usage: ifscheme [-v] [-l] [[-s] newscheme]" >&2 } reload_iface() { ifdown $verbose $1 && ifup $verbose $1 } list() { # Sed magic... sed -ne "/^[[:space:]]*\(iface\|map\)[[:space:]].*-/{s:^[ ]*::;s:-: :;p;}" < $INTERFACES | cut -d' ' -f3 | sort -u # Easier to read, slower : #grep "^[[:space:]]*\(iface\|map\)[[:space:]].*-" $INTERFACES | sed -e"s/^[ ]*//" | sed -e"s/-/ /" | cut -d' ' -f3 | sort -u } if [ $# -gt 3 ] ; then echo "Too many arguments." usage exit 1 fi quiet="-q" while [ ! -z "$1" ] ; do case "$1" in -s|--set) # Allows disambiguation of awkward scheme names newscheme="$2" shift ;; -l|--list) list exit 0 ;; -v|--verbose) verbose="-v" quiet="" ;; -*) usage exit 1 ;; *) newscheme="$1" ;; esac shift done if [ ! -z "$newscheme" ]; then # Change to a new scheme if [ -e $SCHEME ]; then oldscheme=$(cat $SCHEME) if [ "$oldscheme" = "$newscheme" ]; then echo "Scheme unchanged." exit fi fi # Find the real location of ifupdown's state file # ifupdown version 0.6.5 moves it to the new location if [ -r $NEW_IFSTATE ]; then IFSTATE=$NEW_IFSTATE else if [ -r $OLD_IFSTATE ]; then IFSTATE=$OLD_IFSTATE else echo "Can't read ifupdown state file ($OLD_IFSTATE or $NEW_IFSTATE)." echo "Scheme unchanged." exit 1 fi fi # Does it look like this scheme exists ? Or does a wildcard scheme # exist ? if grep $quiet "^[[:space:]]*\(iface\|map\)[[:space:]].*-\($newscheme\|\*\)" $INTERFACES then echo $newscheme > $SCHEME echo "Scheme changed to $newscheme." else echo "Did not find scheme $newscheme in $INTERFACES." echo "Scheme unchanged." exit 1 fi # The stored scheme has changed, now change the running interfaces. if [ ! -z "$oldscheme" ]; then # We need to determine which interfaces need to change, # we don't want to blindly restart all existing interfaces # First, extract liface names from explicit mapping lines # in interface configuration file, either matching # the old scheme or a wildcard. old_mappings=$(sed -ne "/^[[:space:]]*map[[:space:]].*-\($oldscheme\|\*\)/{s:^[ ]*::p;}" < $INTERFACES | cut -d' ' -f 3) # Second, extract from the state file any real interface # which liface either match the mapping above or is # appened by the old scheme name. active_ifaces=$(grep -F -- "-$oldscheme"$'\n'"$old_mappings" $IFSTATE | cut -d = -f 1) # Now, restart all those interfaces for iface in $active_ifaces ; do echo "Reinitializing $iface.." if ! reload_iface $iface ; then bad_scheme=1 echo "Failed!" fi done if [ ! -z $bad_scheme ] ; then # Whoops. echo "Reinitialization failed." echo "Reverting to scheme $oldscheme." echo $oldscheme > $SCHEME for iface in $active_ifaces ; do if ! reload_iface $iface ; then echo "Reverting $iface failed!" fi done fi fi exit 0 else # Just reporting the current scheme. if [ ! -e $SCHEME ]; then echo "Scheme not set." else echo "Current scheme is $(cat $SCHEME)." fi exit 0 fi ifscheme.1.7/ifscheme-mapping0000750000175000017500000000162010344163560016157 0ustar jeanjean00000000000000#!/bin/sh # This script is called by ifup/down to load the network scheme specified by # ifscheme. # # Arguments : on the command line, we have the name of the interface. # If the mapping contains some "map" statements, we get them from stdin. SCHEME=/etc/network/run/scheme # Take care of users calling this program directly. if [ -z "$1" ] ; then prog=$(basename $0) echo "$prog: This script is a utility for ifscheme." >&2 echo "$prog: See the ifscheme(1) man page for more information." >&2 exit 1 fi # Figure out what the mapping should be iface="$1" mapping="" if [ ! -e $SCHEME ]; then mapping="$iface" else mapping="$iface-$(cat $SCHEME)" fi # Look at map statements passed by ifup for special cases while read glob scheme; do # test if match globbing pattern (i.e. match '*' properly) case "$mapping" in $glob) mapping="$scheme" break ;; esac done # Return to ifup echo $mapping ifscheme.1.7/ifscheme.80000640000175000017500000000641710317362636014710 0ustar jeanjean00000000000000.TH IFSCHEME 8 "" "" "Commands" .SH NAME ifscheme \- scheme control for network interfaces .SH SYNOPSIS .B ifscheme [\fI-v\fP] [[\fI-s\fP] newscheme] .TP .B mapping script ifscheme-mapping .SH DESCRIPTION .I ifscheme allows you to change network configuraton schemes or query the current scheme. It integrates with the .BR ifup (8) command and .BR interfaces (5) . For example, you might use this program to configure a "home" scheme and a "work" scheme for a network device on a laptop. When you move between home and work, a simple command can reconfigure your networking. .P If you run the program with no parameters, it will tell what the current network scheme is. .P The ifscheme-mapping utility is used to tell the ifup and ifdown utilities about the current scheme. .SH OPTIONS .TP .B -v .TP .B --verbose Run in verbose mode. This is passed in to the ifup and ifdown programs as well. .TP .B -l .TP .B --list list all schemes available/defined in /etc/network/interfaces. .TP .B newscheme .TP .B -s newscheme .TP .B --scheme newscheme Change to a new network configuration scheme. When the scheme is changed, network interfaces that were using the old scheme will be taken down and brought back up to use the new configuration scheme. -s or --scheme are mandatory if newscheme begins with a -. .SH CONFIGURATION To make the program do anything useful when a scheme is selected, you must edit /etc/network/interfaces to add a mapping for the interface (or interfaces) that can be controlled on a per-scheme basis. Suppose you want to control eth0 in this way. You might have an existing eth0 configuraton in there, such as: .P auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1 .P To change this so you can chose between static routing and dhcp, replace it with the following (it helps to ifdown the interface first). .P auto eth0 mapping eth0 script ifscheme-mapping iface eth0-home inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1 iface eth0-work inet dhcp .P Now if you run "ifscheme home" and ifup the interface, you'll get the eth0-home configuration stanza. If you run "ifscheme work", it will be changed to the eth0-work stanza. You can add additional stanzas as desired, but the label must always be of the form -. .P If you have a second interface (perhaps a wireless network card on eth1), you can duplicate the above for that interface, changing the eth0 and the configuration details as appropriate, but remember to add an iface stanza for every scheme name for the second interface. .SH FILES .TP .I /etc/network/interfaces the interfaces definition file .TP .I /etc/network/run/scheme the current scheme .TP .I /etc/network/run/ifstate a record of the current state of the interfaces, managed by ifup and ifdown .SH BUGS All schemed interfaces will have the same scheme. .P Any schemed interface which does not have an entry for the current scheme and is not configured when the scheme is changed will not be successfully configured when it is brought up. .SH "SEE ALSO" .BR interfaces (5) .BR ifup (8) .BR ifdown (8) .SH DISTRIBUTION Redistribution is subject to the GNU public license. .SH AUTHORS Joey Hess , Peter Wilson ifscheme.1.7/CHANGELOG0000640000175000017500000000243610344166071014236 0ustar jeanjean00000000000000 ifscheme 1.0 ------------ (Jean II) o Initial release from code in http://bugs.debian.org/154444. ifscheme 1.1 ------------ (Clemens Wacha ) o List all schemes with '-l' ifscheme 1.2 ------------ (Based on patch from Hugo Haas ) o List "map" statements in mapping ifscheme 1.3 ------------ (Based on patch from Hugo Haas ) o Properly assigned scheme using "map" statements in mapping ifscheme 1.3.2 -------------- (Sven Koch ) o Location of ifstate has moved to /etc/network/run/ in ifupdown 0.6.5 ifscheme 1.4 ------------ o Try both locations for ifstate file, pick the right one o Properly reconfigure interfaces using explicit "map" statements ifscheme 1.5 ------------ (Tor Slettnes ) o Add essidscan (Guus Sliepen ) o Move scheme file to /etc/network/run/scheme ifscheme 1.6 ------------ o Move scheme file to /var/lib/ifscheme/scheme (rw+persistent) ifscheme 1.7 ------------ o Split REAME file in README.ifscheme + README.essidscan (Guus Sliepen ) o Revert scheme file back to to /etc/network/run/scheme o essidscan man page o add init and default files (Stefan Tomanek ) o Add wifichoice.sh, similar to essidscan, but better ifscheme.1.7/essidscan0000750000175000017500000000573610317361547014740 0ustar jeanjean00000000000000#!/bin/bash ########################################################################### ### FILE: essidscan ### PURPOSE: Scan for ESSID corresponding to available WLAN access points ### ### USAGE: Normally called by ifup(8) based on a "mapping" stanza in ### /etc/network/interfaces. The network interface should be ### supplied as the first and only argument; each known SSID ### should be supplied on standard input, optionally followed ### by a mapping. ### ### Based on the result of the scan, one of the following is ### printed on standard output: ### - If at least one of the supplied ESSIDs is discovered, ### its corresponding mapping (or the ESSID itself is no ### mapping is provided). ### ### - If none of the supplied ESSIDs are discovered, the ### word "DEFAULT". ### ### - If the interface does not support WLAN extensions, ### an empty line is printed. ### ### A sample /etc/network/interfaces may look like this: ### ### mapping hotplug ### script /etc/network/essidscan ### map SSIDONE wlan-work ### map SSIDTWO wlan-work ### map HOME ### ### iface wlan-work inet dhcp ### wireless-key 1234-5678-9ABC-DEF0-1234-5678-9A ### wireless-keymode restricted ### ### iface HOME inet static ### address 192.168.2.4 ### netmask 255.255.255.0 ### gateway 192.168.2.1 ### wireless-essid HOME ### wireless-key s:somepassword ### wireless-keymode open ### ### iface DEFAULT inet dhcp ########################################################################### ### Some settings iwlist=/sbin/iwlist ifconf=/sbin/ifconfig grep=/bin/grep ### Sanity checks if [ -z "$1" ] then echo "Usage: $0 " >&2 exit 1 elif [ ! -x "$iwlist" ] then echo "Missing \`$iwlist' -- install wireless-tools first." >&2 exit 1 fi ### Save the current state of the interface, before bringing it up ### to perform a SSID scan. If it was down, bring it down again ### after the scan. $ifconf "$1" | $grep -qs " UP " && wasup=true || wasup=false $wasup || $ifconf $1 up cells=$(iwlist $1 scanning 2>&1) $wasup || $ifconf $1 down ### See if we find any of the interfaces given on the standard input if [ "${cells//Scan completed}" != "${cells}" ] then iface=DEFAULT else iface= fi while read essid mapping do if [ "${cells//ESSID:\"$essid\"}" != "$cells" ] then iface=${mapping:-$essid} break fi done echo $iface ifscheme.1.7/wifichoice.sh0000755000175000017500000001136110344164535015500 0ustar jeanjean00000000000000#!/bin/sh # wifichoice.sh by Stefan Tomanek (stefan@pico.ruhr.de) # http://localhost.ruhr.de/~stefan/interfaces/ # # Wifichoice selects the proper configuration profile for your WLAN # interface by scanning for the right environment. # To achieve this, it can either scan for the correct access point # or ESSID, or try to associate with the configured network. # # Configuration is done in a central way via /etc/network/interfaces: # # mapping wlan0 # script /usr/local/sbin/ifichoice.sh # map default: none # map timeout: 2 # # Timeout is the number of seconds the script waits after a test # association for the device to settle, and default is the profile # that shoud be loaded is if no known surrounding is detected. # # The test parameters are defined in the profiles themselves: # # iface home inet dhcp # wireless yes # wireless_mode managed # wireless_key open 1234567890ABCDEF1234567890 # wireless_essid mywifinet # wifichoice ap 00:12:34:56:78:9A # # Since your access point does not not broadcast its ESSID, # and/or your card does not support "iwlist scan", wifichoice tries to # associate with the network, using the supplied config, and then checks # whether the network is managed by the right access point. # # If you can identify the network by its broadcasted ESSID or AP, you can # also try to scan for it. Just add a line like this to your profile: # # wifichoice scan essid mywifinet # # Wifichoice then invokes a scan for neighbouring access points, and # identifies those that serve the requested ESSID. It is also possible # to scan for a specific access point address, this is useful if the AP # does not transmit its ESSID: # # wifichoice scan ap 00:12:34:56:78:9A # Which physical interface do we operate on? IFACE=$1 # How long do we wait for the interface to settle? TIMEOUT=2 # What is the default profile? DEFAULT="" DEBUG=0 # Paths to files ENI=/etc/network/interfaces IWCONFIG=/sbin/iwconfig IFCONFIG=/sbin/ifconfig IWLIST=/sbin/iwlist IWGETID=/sbin/iwgetid readConfig() { while read L <&0; do OPTION="$(echo $L | cut -d: -f1)" VALUE="$(echo $L | cut -d ' ' -f2)" if [ "$OPTION" = "default" ]; then DEFAULT=$VALUE elif [ "$OPTION" = "timeout" ]; then TIMEOUT=$VALUE elif [ "$OPTION" = "debug" ]; then DEBUG=$VALUE fi done debugMSG "Debug output is enabled" debugMSG "Timout is $TIMEOUT seconds" debugMSG "Default profile is »$DEFAULT«" } reset() { IF="$1" CONF="mode managed enc off ap auto essid auto" $IWCONFIG $IF $CONF $IFCONFIG $IF down } config() { IF="$1" reset $IF CONF="$2" debugMSG "Trying wireless configuration: $CONF"; $IWCONFIG $IF $CONF $IFCONFIG $IF up sleep $TIMEOUT } checkAP() { IF="$1" AP="$2" [ "$($IWGETID $IF -ra)" = "$AP" ] } scanESSID() { IF="$1" ESSID="$2" FOUND=0 # certain PC-Cards need this $IFCONFIG $IF up $IWLIST $IF scan | egrep -q '^[[:space:]]*ESSID:"'$ESSID'"$' && FOUND=1 $IFCONFIG $IF down [ $FOUND -eq 1 ] } scanAP() { IF="$1" AP="$2" FOUND=0 $IFCONFIG $IF up $IWLIST $IF scan | egrep -q '^[[:space:]]*Cell [[:digit:]]+ - Address: '$AP'$' && FOUND=1 $IFCONFIG $IF down [ $FOUND -eq 1 ] } debugMSG() { if [ $DEBUG -eq 1 ]; then echo "$*" >&2 ; fi } checkProfile() { FOUND=0 if [ "$METHOD" = "ap" ]; then debugMSG "Trying to associate with »$PROFILE«" AP="$(echo $TEST | cut -d ' ' -f 2)" config $IFACE "$CONFIG" checkAP $IFACE $AP && FOUND=1 elif [ "$METHOD" = "scan" ]; then debugMSG "Scanning for »$PROFILE«" # What are we scanning for? # We support essid and ap FOR="$(echo $TEST | cut -d ' ' -f 2)" VAL="$(echo $TEST | cut -d ' ' -f 3)" if [ "$FOR" = "essid" ]; then debugMSG "Scanning for essid »$VAL«" scanESSID $IFACE $VAL && FOUND=1 elif [ "$FOR" = "ap" ]; then debugMSG "Scanning for access point »$VAL«" scanAP $IFACE $VAL && FOUND=1 fi fi if [ $FOUND -eq 1 ]; then debugMSG "Success!" echo $PROFILE >&3 fi [ $FOUND -eq 1 ] } # Kill STDOUT exec 3>&1 1>/dev/null readConfig PROFILE="" CONFIG="" FOUND=0 TEST="" METHOD="" sed 's/^[[:space:]]*//; s/#.*$//g' $ENI | while read LINE; do if echo $LINE | egrep -q '^iface [[:alnum:]]+'; then # new profile started, check for past profile if [ "$PROFILE" ] && [ "$TEST" ]; then checkProfile $PROFILE $TEST $METHOD && break; fi # reset vars PROFILE="$(echo $LINE | cut -d " " -f 2)" CONFIG="" TEST="" METHOD="" elif echo $LINE | egrep -q '^wireless(_|-)([[:alnum:]])+'; then CMD="$(echo $LINE | sed 's/^wireless\(_\|-\)//')" CONFIG="$CONFIG$CMD " elif echo $LINE | egrep -q '^wifichoice'; then TEST="$(echo $LINE | cut -d ' ' -f 2-)" METHOD="$(echo $TEST | cut -d ' ' -f 1)" reset $IFACE fi done reset $IFACE ifscheme.1.7/essidscan.80000640000175000017500000000237410344163355015074 0ustar jeanjean00000000000000.TH ESSIDSCAN 8 "" "" "Commands" .SH NAME essidscan \- scan for ESSID corresponding to available WLAN access points .SH SYNOPSIS In .I /etc/network/interfaces: .P .B mapping script essidscan .SH DESCRIPTION .P The essidscan utility is used to tell the ifup and ifdown utilities about the current SSID of the WLAN currently being accessed. It can be used to map the SSID name to an iface stanza. .SH CONFIGURATION A sample .I /etc/network/interfaces may look like this: .P mapping hotplug script /etc/network/essidscan map SSIDONE wlan-work map SSIDTWO wlan-work map HOME iface wlan-work inet dhcp wireless-key 1234-5678-9ABC-DEF0-1234-5678-9A wireless-keymode restricted iface HOME inet static address 192.168.2.4 netmask 255.255.255.0 gateway 192.168.2.1 wireless-essid HOME wireless-key s:somepassword wireless-keymode open iface DEFAULT inet dhcp .SH FILES .TP .I /etc/network/interfaces the interfaces definition file .TP .I /etc/network/run/ifstate a record of the current state of the interfaces, managed by ifup and ifdown .SH "SEE ALSO" .BR interfaces (5) .BR ifscheme (8) .BR ifup (8) .BR ifdown (8) .SH AUTHORS Tor Slettnes ifscheme.1.7/ifscheme.init0000640000175000017500000000126210344163355015472 0ustar jeanjean00000000000000#!/bin/sh NAME=ifscheme SCHEMEVOLATILE=/etc/network/run/scheme SCHEMEPERSISTENT=/var/lib/ifscheme/scheme if [ -f /etc/default/ifscheme ]; then . /etc/default/ifscheme fi do_start() { if [ -n "$BOOT_SCHEME" ]; then ifscheme "$BOOT_SCHEME" else if [ -r $SCHEMEPERSISTENT ]; then read scheme < $SCHEMEPERSISTENT ifscheme "$scheme" fi fi } do_stop() { if [ -r $SCHEMEVOLATILE ]; then cat $SCHEMEVOLATILE > $SCHEMEPERSISTENT else rm -f $SCHEMEPERSISTENT fi } case "$1" in start) do_start ;; reload|force-reload|restart) do_stop do_start ;; stop) do_stop ;; *) echo "Usage: invoke-rc.d $NAME {start|stop|reload|force-reload|restart}" ;; esac exit 0 ifscheme.1.7/ifscheme.default0000640000175000017500000000054510344163355016156 0ustar jeanjean00000000000000# ifscheme configuration # # Uncomment the following statement to always boot up with the same # scheme: # #BOOT_SCHEME=home # # Uncomment the following statement to boot up with the scheme passed # in the environment variable SCHEME: # #BOOT_SCHEME=$SCHEME # # Leaving BOOT_SCHEME unconfigured means that the scheme that was last # used will be preserved. ifscheme.1.7/README.ifscheme0000640000175000017500000000551410344165120015460 0ustar jeanjean00000000000000 ifscheme -------- 'ifscheme' is a small utility specific to the Debian distribution. You can use it as a mapping for ifup to manage user selected network schemes. To install this package, just copy the two shell scripts into /usr/local/bin. Or use the Debian package ;-) Joey Hess is the author of 'ifscheme", I just collected it because I use it. Below you will find the author's original explanation. More details can be found in the man page or in the documentation of Wireless Tools. Jean II ------------------------------------------------------------- /etc/network/interfaces is much more flexible than it appears. It can probably do everything pcmcia schemes can do, and more. Here is part of mine: auto wlan0 mapping wlan0 script /usr/local/bin/ifscheme-mapping iface wlan0-home inet static address 192.168.1.5 gateway 192.168.1.1 netmask 255.255.255.0 wireless_mode ad-hoc wireless_essid wortroot wireless_nick dragon wireless_channel 1 iface wlan0-away inet dhcp wireless_mode managed Now I can type 'ifscheme -s away' when I leave home, rather like cardctl scheme. The ifscheme script is at http://bugs.debian.org/154444. If the request in bug #154442 is implemented, it will become very flexible indeed.. Debian will hopefully be using this same file eventually for pcmcia network devices too. It's already doable but takes a little work. This is all rather rough and badly documented so far. You can also do mapping based on the MAC address, if you want specific configuration on specific card. See /usr/share/doc/ifupdown/examples/get-mac-address.sh and the stanza in /usr/share/doc/ifupdown/examples/network-interfaces.gz that uses it. This comes back to the problem I alluded to with mapping scripts not being "nestable" yet, and bug #154442. You can do what you want today, but you may need to write your own mapping script which uses a combination of MAC address and scheme info to return a stanza name to ifupdown. ------------------------------------------------------------- Hugo Haas added support for "map" statements in mapping : ------------ mapping eth0 script ifscheme-mapping map eth0-local eth0-local map eth0-masq masquerading map eth0-* anywhere iface eth0-static inet static address 10.0.0.3 iface masquerading inet static address 192.168.1.1 iface anywhere inet dhcp ------------ There is only a few gotchas with those explicit 'map' statements. First, you don't want to use a mapping name that is an existing interface name or a different scheme name. You will notice is that 'ifscheme' may reconfigure the interface in case where it doesn't need to be when you are using wildcard. In the example above, if you change scheme from 'any' to 'where', the interface is reconfigured. Jean II ifscheme.1.7/README.wifichoice0000640000175000017500000000564610344165762016030 0ustar jeanjean00000000000000 wifichoice ---------- 'wifichoice' is another mapping script sent to me by a Debian user. It allow to automatically select the proper wireless configuration for your wireless LAN interface based on existing networks. It's Debian specific, and it integrates pretty nicely in the existing Debian config environment, however you will need to edit config files... Stefan Tomanek is the author of 'wifichoice', and has a pretty nice page about it. He explitely asked me to package his script. http://localhost.ruhr.de/~stefan/interfaces/ Note that it's similar to essidscan, but the author claim it's more powerful, because it has a more fine grained configuration. I did not try it... Jean ------------------------------------------------------------------ Wifichoice Although I am using guessnet myself for my LAN interface, I was not satisfied with its support for wireless interfaces; I did not find another program that fit my needs. That's why I wrote my own mapping script. After cleaning it up a bit, it became a flexible (shell) program that could cope with many scenarios, so I decided to publish it under the name wifichoice. Configuration Wifichoice selects the proper configuration profile for your WLAN interface by scanning for the right environment. To achieve this, it can either scan for the correct access point or ESSID, or try to associate with the configured network. Configuration is done in a central way via /etc/network/interfaces: ------------------------------- mapping wlan0 script /usr/local/sbin/ifichoice.sh map default: none map timeout: 2 ------------------------------- Timeout is the number of seconds the script waits after a test association for the device to settle, and default is the profile that shoud be loaded is if no known surrounding is detected. The test parameters are defined in the profiles themselves: ------------------------------- iface home inet dhcp wireless yes wireless_mode managed wireless_key open 1234567890ABCDEF1234567890 wireless_essid mywifinet wifichoice ap 00:12:34:56:78:9A ------------------------------- Since your access point does not not broadcast its ESSID, and/or your card does not support "iwlist scan", wifichoice tries to associate with the network, using the supplied config, and then checks whether the network is managed by the right access point. If you can identify the network by its broadcasted ESSID or AP, you can also try to scan for it. Just add a line like this to your profile: ------------------------------- wifichoice scan essid mywifinet ------------------------------- Wifichoice then invokes a scan for neighbouring access points, and identifies those that serve the requested ESSID. It is also possible to scan for a specific access point address, this is useful if the AP does not transmit its ESSID: ------------------------------- wifichoice scan ap 00:12:34:56:78:9A ------------------------------- ifscheme.1.7/README.essidscan0000640000175000017500000000071410344165150015651 0ustar jeanjean00000000000000 essidscan --------- 'essidscan' is a small utility specific to the Debian distribution. You can use it to automatically select a mapping for ifup based on the ESSID availalble to your network interface. Check the header of the script for more details on how to install and use it. Tor Slettnes is the author of 'essidscan', I just collected it because it's similar to 'ifscheme' and need a good home, however I don't use it. Jean II