#! /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