waproamd [options]

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 @sysconfdir@/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, @sysconfdir@/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.

@sysconfdir@/waproamd/waproamd.conf: this file is sourced by the init script @sysconfdir@/init.d/waproamd and contains the interface to be monitored and the options to be used.

@sysconfdir@/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:

@sysconfdir@/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:

@sysconfdir@/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 @sysconfdir@/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 @sysconfdir@/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 <@PACKAGE_BUGREPORT@>. waproamd is available at

, , ,

This man page was written using by Oliver Kurth.