205 lines
5.4 KiB
Bash
Executable File
205 lines
5.4 KiB
Bash
Executable File
#! /bin/sh
|
|
#
|
|
# etc/pcmcia/wlan-ng
|
|
#
|
|
# Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
|
|
# --------------------------------------------------------------------
|
|
#
|
|
# linux-wlan
|
|
#
|
|
# The contents of this file are subject to the Mozilla Public
|
|
# License Version 1.1 (the "License"); you may not use this file
|
|
# except in compliance with the License. You may obtain a copy of
|
|
# the License at http://www.mozilla.org/MPL/
|
|
#
|
|
# Software distributed under the License is distributed on an "AS
|
|
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
# implied. See the License for the specific language governing
|
|
# rights and limitations under the License.
|
|
#
|
|
# Alternatively, the contents of this file may be used under the
|
|
# terms of the GNU Public License version 2 (the "GPL"), in which
|
|
# case the provisions of the GPL are applicable instead of the
|
|
# above. If you wish to allow the use of your version of this file
|
|
# only under the terms of the GPL and not to allow others to use
|
|
# your version of this file under the MPL, indicate your decision
|
|
# by deleting the provisions above and replace them with the notice
|
|
# and other provisions required by the GPL. If you do not delete
|
|
# the provisions above, a recipient may use your version of this
|
|
# file under either the MPL or the GPL.
|
|
#
|
|
# --------------------------------------------------------------------
|
|
#
|
|
# Inquiries regarding the linux-wlan Open Source project can be
|
|
# made directly to:
|
|
#
|
|
# AbsoluteValue Systems Inc.
|
|
# info@linux-wlan.com
|
|
# http://www.linux-wlan.com
|
|
#
|
|
# --------------------------------------------------------------------
|
|
#
|
|
# Portions of the development of this software were funded by
|
|
# Intersil Corporation as part of PRISM(R) chipset product development.
|
|
#
|
|
# --------------------------------------------------------------------
|
|
|
|
|
|
# [MSM]: Moved here because wlan/shared may is intended to be used by
|
|
# other scripts
|
|
wlan_usage ()
|
|
{
|
|
echo "usage: wlan-ng [action] [device name] [debug]"
|
|
echo " actions: start|resume, stop|suspend, check|cksum|restart"
|
|
echo " debug : enables shell debug"
|
|
exit 1
|
|
}
|
|
|
|
if [ "$3" = "debug" ]; then set -x ; fi
|
|
|
|
# Note: this 'shared' comes with the WLAN package
|
|
if [ ! -f /etc/wlan/shared ] ; then
|
|
echo "/etc/wlan/shared not present"
|
|
exit 0
|
|
fi
|
|
|
|
. /etc/wlan/shared
|
|
|
|
# [MSM]: This test supplied by rlazarev, it's commented out due to pcmcia
|
|
# stab file movement. This test needs to be 'functionized' and made a
|
|
# little more robust.
|
|
#if [ ! -f /var/run/stab ] ; then
|
|
# echo "Error: Possibly PCMCIA CS is not started";
|
|
# wlan_usage;
|
|
# exit 1;
|
|
#fi
|
|
|
|
# If number of args is less than 2 display usage
|
|
if [ $# -lt 2 ]; then wlan_usage ; fi
|
|
|
|
# Note: this 'shared' comes with the PCMCIA package
|
|
# ACTION=$1 and DEVICE=$2 are assigned in pcmcia/shared
|
|
if [ -f /etc/pcmcia/shared ] ; then . /etc/pcmcia/shared ; fi
|
|
|
|
# XXXX we can do stuff with $SCHEME still..?
|
|
case "$ACTION" in
|
|
|
|
'start'|'resume')
|
|
#=======ENABLE========================================
|
|
# Do we want to init the card at all?
|
|
eval 'WLAN_ENABLE=$ENABLE_'$DEVICE
|
|
|
|
if ! is_true $WLAN_ENABLE ; then
|
|
exit 0
|
|
fi
|
|
|
|
if is_true $WLAN_DOWNLOAD; then
|
|
wlan_download $DEVICE
|
|
fi
|
|
|
|
wlan_enable $DEVICE
|
|
|
|
#=======MAC STARTUP=========================================
|
|
wlan_supports_scan $DEVICE
|
|
if [ $? = 0 ] ; then
|
|
wlan_scan $DEVICE
|
|
if [ $? = 0 ] ; then
|
|
wlan_source_config_for_ssid "$ssid" "$bssid"
|
|
|
|
wlan_user_mibs $DEVICE
|
|
wlan_wep $DEVICE
|
|
|
|
grep 'autojoin' /proc/net/p80211/$DEVICE/wlandev > /dev/null
|
|
if [ $? = 0 ]; then
|
|
wlan_infra $DEVICE
|
|
else
|
|
wlan_dot11_join $DEVICE
|
|
fi
|
|
else
|
|
echo "network not found. maybe start IBSS?"
|
|
fi
|
|
else
|
|
wlan_source_config $DEVICE
|
|
|
|
wlan_user_mibs $DEVICE
|
|
wlan_wep $DEVICE
|
|
|
|
if is_true $IS_ADHOC ; then
|
|
wlan_adhoc $DEVICE
|
|
else
|
|
wlan_infra $DEVICE
|
|
fi
|
|
fi
|
|
|
|
# ==========PCMCIA NETDEVICE=============================
|
|
# Append the SSID to the pcmcia scheme name
|
|
wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
|
|
|
|
# Call the normal network initialization
|
|
./network $1 $2
|
|
if [ $? = 1 ] ; then
|
|
# echo "/etc/pcmcia/network $1 $2 failed."
|
|
wlan_restore_schemefile
|
|
exit 1
|
|
fi
|
|
|
|
# Restore scheme file to it's prior contents
|
|
wlan_restore_schemefile
|
|
;;
|
|
|
|
'stop'|'suspend')
|
|
|
|
# ==========PCMCIA NETDEVICE=============================
|
|
# Append the SSID to the pcmcia scheme name
|
|
wlan_set_ssid_schemefile "$DesiredSSID"
|
|
|
|
# Call the normal network initialization
|
|
./network $1 $2
|
|
if [ $? = 1 ] ; then
|
|
# echo "/etc/pcmcia/network $1 $2 failed."
|
|
wlan_restore_schemefile
|
|
exit 1
|
|
fi
|
|
|
|
#=======DISABLE IFSTATE=============================
|
|
# Take the device down to a quiescent state.
|
|
wlan_disable $DEVICE
|
|
|
|
# Restore scheme file to it's prior contents
|
|
wlan_restore_schemefile
|
|
;;
|
|
|
|
'check'|'cksum'|'restart')
|
|
# ==========STA ====================================
|
|
# Just passes through for normal network device
|
|
# behavior.
|
|
if is_true $IS_ADHOC; then
|
|
WLAN_SCHEMESSID="$SSID"
|
|
else
|
|
WLAN_SCHEMESSID="$DesiredSSID"
|
|
fi
|
|
|
|
# ==========PCMCIA NETDEVICE=============================
|
|
# Append the SSID to the pcmcia scheme name
|
|
wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
|
|
|
|
# Call the normal network initialization
|
|
./network $1 $2 $3:$WLAN_SCHEMESSID
|
|
if [ $? = 1 ] ; then
|
|
# echo "/etc/pcmcia/network $1 $2 $3 failed."
|
|
wlan_restore_schemefile
|
|
exit 1
|
|
fi
|
|
|
|
# Restore scheme file to it's prior contents
|
|
wlan_restore_schemefile
|
|
;;
|
|
|
|
*)
|
|
usage
|
|
;;
|
|
|
|
esac
|
|
|
|
exit 0
|