diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2018-05-28 19:12:29 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-05-31 23:39:35 +0200 |
commit | 646a5c1cbfd95873950a87b5f75d52073a967023 (patch) | |
tree | b8b8d2ab3b0d432ea69ad1a64d1c789649d65020 /source/n/wireless-tools/scripts/rc.wireless | |
parent | d31c50870d0bee042ce660e445c9294a59a3a65b (diff) | |
download | current-646a5c1cbfd95873950a87b5f75d52073a967023.tar.gz current-646a5c1cbfd95873950a87b5f75d52073a967023.tar.xz |
Mon May 28 19:12:29 UTC 201820180528191229
a/pkgtools-15.0-noarch-13.txz: Rebuilt.
installpkg: default line length for --terselength is the number of columns.
removepkg: added --terse mode.
upgradepkg: default line length for --terselength is the number of columns.
upgradepkg: accept -option in addition to --option.
ap/vim-8.1.0026-x86_64-1.txz: Upgraded.
d/bison-3.0.5-x86_64-1.txz: Upgraded.
e/emacs-26.1-x86_64-1.txz: Upgraded.
kde/kopete-4.14.3-x86_64-8.txz: Rebuilt.
Recompiled against libidn-1.35.
n/conntrack-tools-1.4.5-x86_64-1.txz: Upgraded.
n/libnetfilter_conntrack-1.0.7-x86_64-1.txz: Upgraded.
n/libnftnl-1.1.0-x86_64-1.txz: Upgraded.
n/links-2.16-x86_64-2.txz: Rebuilt.
Rebuilt to enable X driver for -g mode.
n/lynx-2.8.9dev.19-x86_64-1.txz: Upgraded.
n/nftables-0.8.5-x86_64-1.txz: Upgraded.
n/p11-kit-0.23.11-x86_64-1.txz: Upgraded.
n/ulogd-2.0.7-x86_64-1.txz: Upgraded.
n/whois-5.3.1-x86_64-1.txz: Upgraded.
xap/network-manager-applet-1.8.12-x86_64-1.txz: Upgraded.
xap/vim-gvim-8.1.0026-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/n/wireless-tools/scripts/rc.wireless')
-rw-r--r-- | source/n/wireless-tools/scripts/rc.wireless | 342 |
1 files changed, 0 insertions, 342 deletions
diff --git a/source/n/wireless-tools/scripts/rc.wireless b/source/n/wireless-tools/scripts/rc.wireless deleted file mode 100644 index d1264a1fc..000000000 --- a/source/n/wireless-tools/scripts/rc.wireless +++ /dev/null @@ -1,342 +0,0 @@ -#!/bin/sh -# /etc/rc.d/rc.wireless -# $Id: rc.wireless,v 1.13 2007/04/13 14:14:43 eha Exp eha $ -# -# Wireless network card setup. -# -# This script sets up PCI, USB, and 32-bit Cardbus wireless devices -# NOT 16-bit PCMCIA cards! Those are configured in /etc/pcmcia/. -# Single parameter to this script is the name of a network interface. -# Normally this script is called from rc.inet1 rather than run -# directly. -# -# This script is a modified '/etc/pcmcia/wireless' script -# 09/apr/2004 by Eric Hameleers -# 16/sep/2004 * Eric Hameleers * Fixed iwspy and iwpriv commands -# 08/apr/2005 * Eric Hameleers * Allow per-interface overrides of the wireless -# parameters (see /etc/rc.d/rc.inet1.conf) -# 11/apr/2005 * Eric Hameleers * Tune wpa_supplicant interactions. -# 23/apr/2005 * Eric Hameleers * First configure card with iwconfig, -# before starting wpa_supplicant -# 27/apr/2005 * Eric Hameleers * Multiple 'iwpriv $INTERFACE set' commands. -# 14/feb/2006 * Eric Hameleers * Better error messages; alternative way of -# getting HWADDR; parametrized WPA_WAIT value. -# Don't kill an already running wpa_supplicant. -# 29/apr/2006 * Pat Volkerding * Reverted HWADDR change, since it relies on -# a binary (macaddr) that is not built or -# installed by default since it is not -# compatible with all interfaces. -# 15/aug/2006 * Eric Hameleers * Added missing "" around $ESSID, which broke -# ESSIDs that contain a space character. -# 10/oct/2006 * Eric Hameleers * Added default empty values for all parameters. -# This makes a second wireless card leave -# wpa_supplicant alone if WPA is not configured. -# 15/oct/2006 * Eric Hameleers * Swapped the calls to "key <key>" and -# "key restricted" since that might be needed -# for WEP to work reliably. -# 09/jan/2007 * Eric Hameleers * Add explicit default values to wireless params; -# also set the ESSID before IWPRIV commands, -# needed for some RaLink cards; -# use /proc/net/wireless instead of calling -# iwconfig to determine if a card is wireless. -# 13/apr/2007 * Eric Hameleers * Use of the IWPRIV variable was broken. -# NOTE: if you need to enter multiple parameters -# in IWPRIV, you must separate them with the pipe -# (|) character - this used to be a space char! -# See the example in rc.inet1.conf. -# 16/apr/2008 * Pat Volkerding * Make sure that HWADDR is all upper case. -# 23/apr/2008 * Pat Volkerding * Increase sleep time after bringing up an -# interface to 3 seconds. Some drivers -# need this additional time to initialize. -# 02/jan/2010 * Pat Volkerding * Look for /sys/class/net/$NETDEV/wireless rather -# than the contents of /proc/net/wireless to find -# if a network device is wireless. In newer -# kernels devices will not show up in -# /proc/net/wireless until active. -# 16/aug/2012 * Pat Volkerding * Use several tests to determine if an interface -# is wireless, as the reliability of any given -# test may depend on the kernel options and the -# wireless driver used. -# Convert the MAC address to uppercase in sed. -# ------------------------------------------------------------------------------ - -LOGGER=${LOGGER:-cat} - -if [ -z $IFNAME ] ; then - echo "WARNING: The script 'rc.wireless' must be executed by 'rc.inet1'!" | $LOGGER - echo " You should run the command \"/etc/rc.d/rc.inet1 <your_interface>_start\" yourself." | $LOGGER - return 1 2> /dev/null || exit 1 -fi - -INTERFACE=$1 - -# Find the path where wireless tools are installed -for IWPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do - if [ -x $IWPATH/iwconfig ] ; then break ; fi -done - -# The same for wpa_supplicant (needed for WPA support) -for SUPPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do - if [ -x $SUPPATH/wpa_supplicant ] ; then break ; fi -done - -# Set all desired settings through the wireless tools -IWCOMMAND="$IWPATH/iwconfig ${INTERFACE}" -IWPRIVCMD="$IWPATH/iwpriv ${INTERFACE}" -IWSPYCMD="$IWPATH/iwspy ${INTERFACE}" -IFCOMMAND="/sbin/ifconfig ${INTERFACE}" - -is_wireless_device () -{ - # Return 0 for a wireless interface, or 1 for a non-wireless interface. - if LC_ALL=C $IWPATH/iwconfig $1 2>&1 | grep -q "IEEE 802.11" ; then - return 0 - elif [ -d /sys/class/net/${1}/wireless ]; then - return 0 - elif [ "$(cat /sys/class/net/${1}/uevent | grep DEVTYPE)" = "DEVTYPE=wlan" ]; then - return 0 - else # all tests failed, assume the device is not wireless (or add a better test :) - return 1 - fi -} - -############### -# EXIT POINTS # -############### - -# Is the device wireless? If not, exit this script. -is_wireless_device ${INTERFACE} || return 0 2> /dev/null || exit 0 - -# If we stop a wireless interface using wpa_supplicant, -# we'll kill its wpa_supplicant daemon too and exit this script: -if [ "$2" = "stop" ]; then - WPAPID=$(echo $(ps axww | grep wpa_supplicant | grep i${INTERFACE}) | cut -f1 -d' ') - [ ${WPAPID} ] && kill ${WPAPID} - return 0 -fi - -# ----------------------------------------------------- -# Continue with the script - bringing the interface UP. -# ----------------------------------------------------- - -# Bring interface up - for determining the HWADDR -$IFCOMMAND up -sleep 3 - -# Get the MAC address for the interface -HWADDR=$(/sbin/ifconfig ${INTERFACE} | sed -ne 's/.*\(..:..:..:..:..:..\).*/\U\1/p') - -# Empty all wireless parameters- some of them could still be set for a previous interface: -# when rc.inet1 is sourced from rc.M all scripts are run in the same shell. -CHANNEL="" -ESSID="" -FREQ="" -FRAG="" -IWCONFIG="" -IWPRIV="" -IWSPY="" -KEY="" -MODE="" -NICKNAME="" -NWID="" -RATE="" -RTS="" -SENS="" -WPA="" -WPADRIVER="" -WPACONF="" -WPAWAIT="" -# Read the configuration information for the card with address $HWADDR -# from /etc/rc.d/rc.wireless.conf: -[[ -r /etc/rc.d/rc.wireless.conf ]] && . /etc/rc.d/rc.wireless.conf - -# Let any per-interface overrides (the WLAN_xxxx parameters) that are set -# in /etc/rc.d/rc.inet1.conf have precedence. -# The reason: you might have multiple wireless cards of the same brand, or -# connecting to multiple networks. -# Position 'i' of this interface in the IFNAME array was determined in rc.inet1 -CHANNEL=${WLAN_CHANNEL[$i]:-${CHANNEL}} -ESSID=${WLAN_ESSID[$i]:-${ESSID}} -FREQ=${WLAN_FREQ[$i]:-${FREQ}} -FRAG=${WLAN_FRAG[$i]:-${FRAG}} -IWCONFIG=${WLAN_IWCONFIG[$i]:-${IWCONFIG}} -IWPRIV=${WLAN_IWPRIV[$i]:-${IWPRIV}} -IWSPY=${WLAN_IWSPY[$i]:-${IWSPY}} -KEY=${WLAN_KEY[$i]:-${KEY}} -MODE=${WLAN_MODE[$i]:-${MODE}} -NICKNAME=${WLAN_NICKNAME[$i]:-${NICKNAME}} -NWID=${WLAN_NWID[$i]:-${NWID}} -RATE=${WLAN_RATE[$i]:-${RATE}} -RTS=${WLAN_RTS[$i]:-${RTS}} -SENS=${WLAN_SENS[$i]:-${SENS}} -WPA=${WLAN_WPA[$i]:-${WPA}} -# The "ext" interface will be default if not explicitly set -WPADRIVER=${WLAN_WPADRIVER[$i]:-${WPADRIVER:="wext"}} -# The default config file as installed by the wpa_supplicant package: -WPACONF=${WLAN_WPACONF[$i]:-${WPACONF:="/etc/wpa_supplicant.conf"}} -WPAWAIT=${WLAN_WPAWAIT[$i]:-${WPAWAIT:="60"}} - - -[ -n "$VERBOSE" -a -n "$INFO" ] && echo "$0: $1 information: '$INFO'" - -################### -# WIRELESS CONFIG # -################### - -# Mode needs to be first : some settings apply only in a specific mode! -if [ -n "$MODE" ] ; then - echo "$0: $IWCOMMAND mode $MODE" | $LOGGER - # if $IWCOMMAND fails, try taking the interface down to run it. - # Some drivers require this. - if ! $IWCOMMAND mode $MODE 2> /dev/null ; then - $IFCOMMAND down - $IWCOMMAND mode $MODE - $IFCOMMAND up - sleep 3 - fi -fi -# This is a bit hackish, but should do the job right... -if [ ! -n "$NICKNAME" ] ; then - NICKNAME=$(/bin/hostname) -fi -if [ -n "$ESSID" -o -n "$MODE" ] ; then - echo "$0: $IWCOMMAND nick $NICKNAME" | $LOGGER - $IWCOMMAND nick $NICKNAME -fi -# Regular stuff... -if [ -n "$NWID" ] ; then - echo "$0: $IWCOMMAND nwid $NWID" | $LOGGER - $IWCOMMAND nwid $NWID -fi -if [ -n "$FREQ" ] ; then - echo "$0: $IWCOMMAND freq $FREQ" | $LOGGER - $IWCOMMAND freq $FREQ -elif [ -n "$CHANNEL" ] ; then - echo "$0: $IWCOMMAND channel $CHANNEL" | $LOGGER - $IWCOMMAND channel $CHANNEL -fi - -# WEP keys (non-WPA) -if [ -n "$KEY" -a ! -n "$WPA" ] ; then - if [ "$KEY" = "off" ]; then - echo "$0: $IWCOMMAND key open" | $LOGGER - $IWCOMMAND key open - echo "$0: $IWCOMMAND key off" | $LOGGER - $IWCOMMAND key off - else - echo "$0: $IWCOMMAND key ************" | $LOGGER - $IWCOMMAND key $KEY - if ! echo "$KEY" | egrep -qw "restricted|open" ; then - # Set "restricted" as the default security mode: - echo "$0: $IWCOMMAND key restricted" | $LOGGER - $IWCOMMAND key restricted - fi - fi -fi -if [ -n "$SENS" ] ; then - echo "$0: $IWCOMMAND sens $SENS" | $LOGGER - $IWCOMMAND sens $SENS -fi -if [ -n "$RATE" ] ; then - echo "$0: $IWCOMMAND rate $RATE" | $LOGGER - $IWCOMMAND rate $RATE -fi -if [ -n "$RTS" ] ; then - echo "$0: $IWCOMMAND rts $RTS" | $LOGGER - $IWCOMMAND rts $RTS -fi -if [ -n "$FRAG" ] ; then - echo "$0: $IWCOMMAND frag $FRAG" | $LOGGER - $IWCOMMAND frag $FRAG -fi -# More specific parameters -if [ -n "$IWCONFIG" ] ; then - echo "$0: $IWCOMMAND $IWCONFIG" | $LOGGER - $IWCOMMAND $IWCONFIG -fi -if [ -n "$IWSPY" ] ; then - echo "$0: $IWSPYCMD $IWSPY" | $LOGGER - $IWSPYCMD $IWSPY -fi -# For RaLink cards, the SSID must be set right before configuring WPAPSK/TKIP parameters -# using iwpriv commands in order to generate the wpapsk password. This should not hurt other cards: -if [ -n "$ESSID" ] ; then - echo "$0: $IWCOMMAND essid \"$ESSID\"" | $LOGGER - $IWCOMMAND essid "$ESSID" -fi -# The iwpriv can set one private IOCTL at the time, so if the $IWPRIV -# variable contains multiple pipe ('|') separated settings, we split them here: -# WARNING: if your iwpriv commands contain a WEP/WPA key, these can be logged -# in /var/log/messages! -if [ -n "$IWPRIV" ] ; then - echo "${IWPRIV}|" | \ - while read -d '|' iwi; do - if [ -n "$iwi" ]; then - echo "$0: '$IWPRIVCMD $iwi'" | $LOGGER - $IWPRIVCMD $iwi - fi - done -fi - -################## -# WPA_SUPPLICANT # -################## - -# Support for WPA (wireless protected access) is provided by wpa_supplicant -# for those drivers that support it (and it looks like wpa_supplicant is -# the future for WPA support in Linux anyway) -if [ "$WPA" = "wpa_supplicant" ] || [ "$WPA" = "wpaxsupplicant" ] && [ -x ${SUPPATH}/wpa_supplicant ]; then - # Interface down, so wpa_supplicant can associate with the AP - $IFCOMMAND down - #WPACONF=${WPACONF:-/etc/wpa_supplicant.conf} - WPA_OPTIONS="" - [ ${WPADRIVER} ] && WPA_OPTIONS="-D${WPADRIVER}" # specify the driver - [ ${WPA} = "wpaxsupplicant" ] && WPA_OPTIONS="${WPA_OPTIONS} -e" # Use external xsupplicant (disables the internal supplicant) - - # We leave a running wpa_supplicant process in peace: - WPAPID=$(echo $(ps axww | grep wpa_supplicant | grep i${INTERFACE}) | cut -f1 -d' ') - if [ ${WPAPID} ]; then - echo "$0: wpa_supplicant found running already" | $LOGGER - else - echo "$0: wpa_supplicant -B -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE" | $LOGGER - ${SUPPATH}/wpa_supplicant -B -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE - fi - - # Buy wpa_supplicant some time to authenticate before bringing the - # interface back up... but we don't wait forever: - # You can increase this value in rc.inet1.conf (WLAN_WPAWAIT) or rc.wireless.conf (WPAWAIT) - # if your card takes longer to associate: - WPAWAIT=${WPAWAIT:-10} - wi=0 - while [ $wi -lt $WPAWAIT ]; do - wi=$(($wi+1)); sleep 1 - if (grep -q "^ctrl_interface=" ${WPACONF}); then - if (LC_ALL=C ${SUPPATH}/wpa_cli -i$INTERFACE status | grep -q "^wpa_state=COMPLETED"); then break; fi - else - if (LC_ALL=C ${IWCOMMAND} | grep -Eq "Encryption key:....-"); then break; fi - fi - done - if [ $wi -eq $WPAWAIT ]; then - echo "WPA authentication did not complete, try running '/etc/rc.d/rc.inet1 ${INTERFACE}_start' in a few seconds." | $LOGGER - fi - # Bring interface up to avoid 'not ready' errors when calling iwconfig - $IFCOMMAND up - sleep 3 - -else - - # ESSID need to be last: most devices re-perform the scanning/discovery - # when this is set, and things like encryption keys had better be - # defined if we want to discover the right set of APs/nodes. - # NOTE: when automatic association does not work, but you manage to get - # an IP address by manually setting the ESSID and then calling dhcpcd, - # then the cause might be the incorrect definition of your ESSID="bla" - # parameter in rc.wireless.conf. - # Debug your wireless problems by running 'iwevent' while the card - # is being configured. - if [ -n "$ESSID" ] ; then - echo "$0: $IWCOMMAND essid \"$ESSID\"" | $LOGGER - $IWCOMMAND essid "$ESSID" - fi - -fi |