waproamd is a roaming daemon for wireless NICs supporting the
Linux wireless extensions. It is intended to configure the WEP
keys according to the networks found.
As long as the local NIC is not associated to any wireless
network waproamd scans iteratively for them. If one is detected, a
script in /etc/waproamd/scripts/ named after
the MAC address of the access point is called. (First lowercase,
than uppercase is checked) If a script like this is not found a
script named essid:<ESSID> in the same directory is
used. Special characters are escape in an HTTP URL like
fashion. If this script is not existent,
/etc/waproamd/scripts/default is called
instead. The first argument to this script is "start". If the
association is lost, the same script is run with the argument
"stop". While the NIC is associated no scans are issued.
waproamd is intended to be used together with ifplugd. Whenever
an association succeeds, ifplugd detects it and runs further
configuration commands for it.
If multiple WLANs are detected at the same time, the network
which is detected by the hardware first is selected. However,
networks where a matching script exists take precedence.
waproamd requires a network driver supporting the Linux
wireless extensions v15 or newer. The driver needs to support
scanning for wireless networks, which may be tested by running
"iwlist scan". If the driver supports the wireless event
subsystem, waproamd may use it to improve latency behaviour. It is
not required, however.
waproamd supports the host_roaming ioctl() defined by the
hostap driver.
/etc/waproamd/waproamd.conf: this file is sourced
by the init script /etc/init.d/waproamd and
contains the interface to be monitored and the options to be
used.
/etc/waproamd/scripts/<AP MAC
address>: this is called whenever a wireless network
controlled by an AP with a matching address is detected. The file
is first tried with the MAC address formatted lowercase. If no
script with that name exists waproamd looks for a file with the
MAC address formatted uppercase. Only scripts marked executable are considered. Networks with non-executable scripts are always ignored. You may use this to "disable" specific networks from being selected. Takes the same arguments as the
following script:
/etc/waproamd/scripts/essid:<ESSID>:
This is called whenever a wireless AP is detected but no script
named after the AP MAC exists (See above). If the ESSID contains
special chracters (ASCII code < 32, >= 127, '/', '%') they are
replaced by a character % and the hexadecimal ASCII number of the
character in uppercase. This is similar to the HTTP URL
encoding. Only scripts marked executable are considered. Takes the same arguments as the following script:
/etc/waproamd/scripts/default: this is the
script which is called when neither a script named after the
AP MAC address, nor a script named after the ESSID is found. It
takes a single argument: either "start" or "stop". An environment
variable AP is set to the MAC address of the access point
found. An environment variable IFACE is set to the network
interface name. An environment variable ESSID contains the ESSID
of the WLAN network. ESSID_ESCAPED contains the ESSID with all
special chracters escaped the same way as described above. The
default implementation of this script looks for a file
/etc/waproamd/keys/<AP MAC address>.wep
(or named after the ESSID, following the same scheme as the script
selection described above). If it exists its contents is used to
set the WEP key of the NIC. Otherwise the script looks for a file
/etc/waproamd/keys/<AP MAC
address>.aes. If it exists the AES WEP rekeying daemon
is called. Otherwise WEP
encryption is disabled.
/var/run/waproamd.<iface>.pid: the pid file
for waproamd.
SIGINT, SIGTERM, SIGQUIT waproamd will quit. This is issued by passing -k to waproamd.
SIGHUP waproamd will rescan for available networks immediately.
waproamd was written by Lennart Poettering
<mzjncebnzq (at) 0pointer (dot) de>. waproamd is available
at