diff options
Diffstat (limited to 'abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan')
16 files changed, 2185 insertions, 0 deletions
diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/entries b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/entries new file mode 100644 index 0000000..698bde6 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/entries @@ -0,0 +1,198 @@ +9 + +dir +1870 +svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/wlan +svn://svn.shaftnet.org/linux-wlan-ng + + + +2008-06-24T19:10:11.002401Z +1863 +pizza + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +7c16ee9a-e2ed-0310-ae25-9f6e1be264fe + +wlancfg-DEFAULT +file + + + + +2009-01-07T08:13:02.000000Z +5b4df9b122c000907fa3e18b7b9ad9ed +2003-03-24T16:18:08.000000Z +1324 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +1826 + +wlan.conf +file + + + + +2009-01-07T08:13:02.000000Z +55c3cd28747fba0d5519d4b1af2f393f +2005-02-01T19:11:19.523569Z +1688 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +3101 + +shared +file + + + + +2009-01-07T08:13:02.000000Z +909d2eada524282172a9e4df7dd42b84 +2008-06-24T19:10:11.002401Z +1863 +pizza +has-props + + + + + + + + + + + + + + + + + + + + +17350 + +wlan-udev.sh +file + + + + +2009-01-07T08:13:02.000000Z +b0eb492fe38ee1ec69e43e885ca1e8b3 +2007-02-27T16:43:02.918194Z +1823 +pizza + + + + + + + + + + + + + + + + + + + + + +947 + +Makefile +file + + + + +2009-01-07T08:13:02.000000Z +9010fd4e8dd3e0e8cb1cbf1c79e38b4f +2006-06-26T15:08:43.057073Z +1777 +solomon +has-props + + + + + + + + + + + + + + + + + + + + +2430 + diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/format b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/format new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/format @@ -0,0 +1 @@ +9 diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base new file mode 100644 index 0000000..7b57b30 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base @@ -0,0 +1,9 @@ +K 13 +svn:eol-style +V 6 +native +K 12 +svn:keywords +V 23 +Author Date Id Revision +END diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..8133cf3 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base @@ -0,0 +1,64 @@ +# etc/wlan/Makefile +# +# 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. +# +# -------------------------------------------------------------------- + +-include ../../config.mk + +all: + echo "Nothing to do" + +clean: + echo "Nothing to do" + +install: + mkdir -p $(TARGET_ROOT_ON_HOST)/etc/wlan + if [ ! -f $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ] ; then \ + cp wlan.conf $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ; \ + fi + cp shared wlancfg-DEFAULT wlan-udev.sh \ + $(TARGET_ROOT_ON_HOST)/etc/wlan + chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlancfg-* + chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf + chmod 755 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan-udev.sh + echo FIRMWARE_DIR=$(FIRMWARE_DIR) >> $(TARGET_ROOT_ON_HOST)/etc/wlan/shared + diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base new file mode 100644 index 0000000..5d84bb8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base @@ -0,0 +1,738 @@ +#!/bin/bash +# etc/wlan/shared +# +# Copyright (C) 2002 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. +# +# -------------------------------------------------------------------- + +TMPDIR=/tmp + +if [ ! -n "$ECHO" ]; then + ECHO=echo +fi + +if [ ! -n "$WLAN_UDEV" ] ; then +if [ -x /sbin/modprobe ] ; then + MODPROBE=/sbin/modprobe +else + ${ECHO} "/sbin/modprobe not found." + exit 1 +fi +fi + +if [ -x /sbin/wlanctl-ng ] ; then + WLANCTL=/sbin/wlanctl-ng +else + ${ECHO} "/sbin/wlanctl-ng not found." + exit 1 +fi + +# linux-wlan-ng > 0.2.4 there is no wland +#if [ -x /sbin/wland ] ; then +# WLAND=/sbin/wland +#else +# ${ECHO} "/sbin/wland not found." +# exit 1 +#fi + +if [ -z "$WLAN_UDEV" ] ; then + HAS_HOTPLUG=n + if [ -f /proc/sys/kernel/hotplug -a \ + -f /etc/hotplug/wlan.agent ] ; then + HOTPLUGGER=$(</proc/sys/kernel/hotplug) + if [ -n "$HOTPLUGGER" ] ; then + if [ -x $HOTPLUGGER ] ; then + HAS_HOTPLUG=y + fi + fi + fi +fi + +# Source the wlan configuration +if [ -f /etc/wlan/wlan.conf ] ; then + . /etc/wlan/wlan.conf +else + ${ECHO} "/etc/wlan/wlan.conf not found." + exit 0 +fi + +# Source NSD specific functions +# nsd_fwload +# nsd_mibset +# Debian mod. If there is shared.dpkg-old we get a endless loop +if [ "`ls /etc/wlan/shared.* 2>/dev/null`" ]; then + for i in `find /etc/wlan -name 'shared.*' -a ! -name '*.dpkg*'` ; do + . $i + done +else + ${ECHO} "/etc/wlan/shared.* not found." + exit 0 +fi + +is_true () +{ + # $1 == string containing a t/f indicator. + + [ "$1" = "y" -o "$1" = "Y" -o "$1" = "yes" -o "$1" = "YES" \ + -o "$1" = "t" -o "$1" = "T" -o "$1" = "true" -o "$1" = "TRUE" ] +} + +wlan_nsdname () +{ + # $1 == wlandev + # Writes the given device's name to stdout + grep 'nsd name' /proc/net/p80211/$1/wlandev | sed -e 's/.*: \(.*\)_.*/\1/' +} + +wlan_enable () +{ + # $1 == wlandev + + #=======ENABLE IFSTATE============================= + # Bring the device into its operable state + + # if running under udev module must be loaded to get here so skip checks + if [ ! -n "$WLAN_UDEV" ] ; then + + $MODPROBE $1 + + # First, make sure the driver is loaded.... + if ! ifconfig $1 > /dev/null 2>&1 ; then + ${ECHO} "Error: Device $1 does not seem to be present." + ${ECHO} "Make sure you've inserted the appropriate" + ${ECHO} "modules or that your modules.conf file contains" + ${ECHO} "the appropriate aliase(s)." + return 1 + fi + fi + # Call the nsd script's fwload function, in case the card needs + # a firmware load, or could use an optional one. + + nsdname=`wlan_nsdname $1` + if ! ${nsdname}_fwload $1 ; then + ${ECHO} "Firmware failed to load for device $1" + return 1 + fi + + # Enable the interface + result=`$WLANCTL $1 lnxreq_ifstate ifstate=enable` + if [ $? = 0 ] ; then + eval $result + if [ $resultcode != "success" ]; then + ${ECHO} "Failed to enable the device, resultcode=" \ + $resultcode "." + return 1 + fi + else + ${ECHO} "Failed to enable the device, exitcode=" $? "." + return 1 + fi + + # Set any NSD specific MIBs + ${nsdname}_mibset $1 +} + +wlan_user_mibs () +{ + # $1 == wlandev + + #=======USER MIB SETTINGS============================= + # Set the user specified MIB items. + for i in $USER_MIBS ; do + result=`$WLANCTL $1 dot11req_mibset "mibattribute=$i"` + if [ $? = 0 ] ; then + eval $result + if [ $resultcode != "success" ] ; then + ${ECHO} "Failed to set user MIB $i." + return 1 + fi + else + ${ECHO} "Failed to set user MIB $i." + return 1 + fi + done +} + +wlan_source_config () +{ + # $1 == wlandev + + # XXX what about stray singlequotes. + eval 'GOSSID="$SSID_'$1'"' + wlan_source_config_for_ssid "$GOSSID" +} + +wlan_source_config_for_ssid () +{ + # $1 == ssid[:bssid] + # $2 == bssid (optional) + + DesiredSSID="$1" + DesiredBSSID="$2" + + if [ -n "$2" ] ; then + token_ssid=`echo $1 | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'` + token_bssid=`echo $1 | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'` + if [ -n "$token_ssid" ] ; then + DesiredSSID="$token_ssid" + DesiredBSSID="$token_bssid" + fi + + fi + + if [ -f "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" ] ; then + . "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" + elif [ -f "/etc/wlan/wlancfg-$DesiredSSID" ] ; then + . "/etc/wlan/wlancfg-$DesiredSSID" + else + + if [ -n "$1" ] ; then + ${ECHO} "Failed to open network config file /etc/wlan/wlancfg-$1, using default." + fi + + . "/etc/wlan/wlancfg-DEFAULT" + fi +} + +wlan_disable () +{ + # $1 == wlandev + + $WLANCTL $1 lnxreq_ifstate ifstate=disable +} + +wlan_ssid_in_list () +{ + # $1 == wlandev, $2 == ssid, $3 == bssid + + eval 'GOSSID="$SSID_'$1'"' + + # This "eval" hackery is to allow escapes in GOSSID... + cmd="for token in $GOSSID ; do + ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` + bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` + + if [ -z \"\$ssid_token\" ] ; then + ssid_token="\$token" + fi + + if [ -n \"\$bssid_token\" ] ; then + if [ \"\$bssid_token\" = \"\$3\" ] ; then + return 0 + fi + elif [ \"\$2\" = \"\$ssid_token\" ] ; then + return 0 + fi + done" + eval "$cmd" + + return 1 +} + +wlan_supports_scan () +{ + # $1 == wlandev + + if is_true "$WLAN_SCAN" ; then + cat /proc/net/p80211/$1/wlandev | grep 'scan' > /dev/null + if [ $? = 0 ] ; then + return 0 + fi + fi + return 1 +} + +wlan_scan () +{ + # $1 == wlandev + + # find our allowed SSID list. + + # XXX what about stray singlequotes. + eval 'GOSSID="$SSID_'$1'"' + + # kick off a quick scan with the broadcast SSID. + wlan_scan_one $1 '' '' n + if [ $? = 0 -a \ + "$GOSSID" = "" ] ; then + # if successful and our ssid list is null, return. + sleep 1 + return 0 + fi + + # otherwise we walk through the list, and scan for eacn in turn. + # this "eval" hackery is to allow escapes in GOSSID + cmd="for token in $GOSSID ; do + ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` + bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` + + if [ -z \"\$ssid_token\" ] ; then + ssid_token=\"\$token\" + fi + + wlan_scan_one \$1 \"\$ssid_token\" \"\$bssid_token\" + if [ \$? = 0 ] ; then + sleep 1 + return 0 + fi + done" + eval "$cmd" + + # We got to the end of the list. Maybe try "any" + if is_true "$WLAN_ANY" ; then + wlan_scan_one $1 + sleep 1 + return $? + fi + + sleep 1 + return 1 +} + + +wlan_scan_one () +{ + # $1 == wlandev, [ $2 == ssid, $3 == bssid, $4 == append ] + + if [ -z "$4" ] ; then + append=true + else + append=false + fi + + numbss=0 + + result=`$WLANCTL $1 dot11req_scan bsstype=any bssid=ff:ff:ff:ff:ff:ff \ + scantype=active probedelay=0 channellist=$ChannelList ssid="$2" \ + minchanneltime=$ChannelMinTime maxchanneltime=$ChannelMaxTime append=$append` + eval $result + if [ $resultcode != 'success' ] ; then + ${ECHO} "Scan failed ($resultcode) " + return 1 + fi + + ## XXX if numbss == 0, repeat with $2 $3 $4? + + i=0 + bssfound="" + + # walk through the results and do first-cut matching. + while [ $i -lt $numbss ] ; do + result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` + eval $result + + if [ -n "$3" ] ; then + if [ "$3" = "$bssid" ] ; then + bssfound="$bssfound $i" + fi + elif [ -z "$2" ] ; then + # if our ssid is "", then we pick the first entry. + bssfound="$bssfound $i" + elif [ "$2" = "$ssid" ] ; then + bssfound="$bssfound $i" + fi + i=`expr $i + 1` + done + + if [ -z "$bssfound" ]; then # No BSSs found, bail. + return 1 + else + # Now find the closest + bigsignal=0 + for i in $bssfound ; do + result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` + eval $result + if [ $bigsignal -lt $signal ]; then + bigsignal=$signal + bigbssindex=$i + fi + done + result=`$WLANCTL $1 dot11req_scan_results bssindex=$bigbssindex` + eval $result + return 0 + fi +} + +wlan_wep () +{ + # $1 == wlandev + + #=======WEP=========================================== + # Setup privacy + if [ ${dot11PrivacyInvoked:-"false"} = "false" ] ; then + return 0; + fi + + result=`$WLANCTL $1 dot11req_mibget mibattribute=dot11PrivacyOptionImplemented` + if [ $? = 0 ] ; then + eval $result + eval $mibattribute + else + ${ECHO} "dot11PrivacyOptionImplemented mibget failed." + return 1 + fi + + if [ $dot11PrivacyOptionImplemented = "false" ] ; then + ${ECHO} "Cannot enable privacy, dot11PrivacyOptionImplemented=false." + return 1 + fi + + # Do we want host-based WEP? + result=`$WLANCTL $1 lnxreq_hostwep \ + decrypt="${lnxreq_hostWEPDecrypt:-false}" \ + encrypt="${lnxreq_hostWEPEncrypt:-false}"` + + # set up the rest of the parametsrs. + if [ $dot11PrivacyOptionImplemented = "true" -a \ + $dot11PrivacyInvoked = "true" ] ; then + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKeyID=$dot11WEPDefaultKeyID ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11ExcludeUnencrypted=$dot11ExcludeUnencrypted ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked` + if [ "${PRIV_GENSTR:-empty}" != "empty" ] ; then + if [ ${PRIV_KEY128:-"false"} = "false" ]; then + keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 5` + else + keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 13` + fi + knum=0 + for i in $keys ; do + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey$knum=$i` + knum=`expr $knum + 1` + done + else + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey0=$dot11WEPDefaultKey0 ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey1=$dot11WEPDefaultKey1 ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey2=$dot11WEPDefaultKey2 ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey3=$dot11WEPDefaultKey3 ` + fi + else + # disable wep explicitly. + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11ExcludeUnencrypted=false ` + fi +} + +wlan_adhoc () +{ + # $1 == wlandev + + #=======IBSS STARTUP================================== + startcmd="$WLANCTL $1 dot11req_start " + startcmd="$startcmd ssid=$DesiredSSID" + startcmd="$startcmd bsstype=independent" + startcmd="$startcmd beaconperiod=$BCNINT" + startcmd="$startcmd dtimperiod=3" + startcmd="$startcmd cfpollable=false" + startcmd="$startcmd cfpollreq=false" + startcmd="$startcmd cfpperiod=3" + startcmd="$startcmd cfpmaxduration=100" + startcmd="$startcmd probedelay=100" + startcmd="$startcmd dschannel=$CHANNEL" + j=1 + for i in $BASICRATES ; do + startcmd="$startcmd basicrate$j=$i" + j=`expr $j + 1` + done + + j=1 + for i in $OPRATES ; do + startcmd="$startcmd operationalrate$j=$i" + j=`expr $j + 1` + done + + results=`$startcmd` # Here's where it runs + if [ $? = 0 ]; then + eval $results + if [ $resultcode != "success" ] ; then + ${ECHO} "IBSS not started, resultcode=$resultcode" + exit 1 + else + ${ECHO} "IBSS mode started." + fi + else + ${ECHO} FAILED: $startcmd + return 1 + fi + WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_infra () +{ + # $1 == wlandev + + #==== INFRASTRUCURE STARTUP=========================== + # XXX TODO: Grok DesiredBSSID + + sleep 5 + results=`$WLANCTL $1 lnxreq_autojoin \ + "ssid=$DesiredSSID" \ + authtype=${AuthType:="opensystem"} | sed 's/\([^=]*\)=\(.*\)/\1="\2"/'` + eval $results + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} 'error: Autojoin indicated failure!' + return 1; + fi + + WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_dot11_join () +{ + # $1 == wlandev + + joincmd="$WLANCTL $1 dot11req_join bssid=$DesiredBSSID" + joincmd="$joincmd joinfailuretimeout=1" + + j=1 + for i in $OPRATES ; do + joincmd="$joincmd operationalrate$j=$i" + j=`expr $j + 1` + done + + results=`$joincmd` + + eval $results + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} "$1: JOIN Failure" + ${ECHO} "joincmd=$joincmd" + ${ECHO} "results=$results" + return 1; + fi +} + +wlan_dot11_auth_assoc () +{ + # $1 == wlandev + if [ $bsstype = "infrastructure" ] ; then + results=`$WLANCTL $1 dot11req_authenticate \ + peerstaaddress=$DesiredBSSID \ + authenticationtype=$AuthType \ + authenticationfailuretimeout=2000` + eval $results + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} "error: dot11req_authenticate failed, "\ + "resultcode=$resultcode" + return 1; + fi + results=`$WLANCTL $1 dot11req_associate \ + listeninterval=1000 \ + associatefailuretimeout=2000 ` + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} 'error: dot11req_associate failed!' + return 1; + fi + fi +} + +wlan_set_ssid_schemefile () +{ + # $1 == SSID + + # Find the scheme file + if [ -r /var/lib/misc/pcmcia-scheme ] ; then + # Debian + WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" + elif [ -d /var/state/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" + elif [ -d /var/lib/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" + else + WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" + fi + + # Collect the current scheme name and save the file + if [ -r $WLAN_SCHEMEFILE ] ; then + WLAN_SCHEME=`cat $WLAN_SCHEMEFILE` + cp $WLAN_SCHEMEFILE /var/run/wlan_scheme_`date +"%T"`.tmp + else + touch /var/run/wlan_scheme_`date +"%T"`.tmp + + fi + + # Set up the <scheme:SSID> string + if [ ! "$WLAN_SCHEME" ] ; then + WLAN_SCHEME="default" + fi + WLAN_SCHEME="$WLAN_SCHEME:$1" + + # Write to schemefile + echo $WLAN_SCHEME > $WLAN_SCHEMEFILE +} + +wlan_restore_schemefile () +{ + # Find the scheme file + if [ -r /var/lib/misc/pcmcia-scheme ] ; then + # Debian + WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" + elif [ -d /var/state/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" + elif [ -d /var/lib/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" + else + WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" + fi + + TMPFILE=`ls /var/run/wlan_scheme*.tmp | tail -n 1` + + if [ -r $TMPFILE ] ; then + cat $TMPFILE > $WLAN_SCHEMEFILE + rm -f $TMPFILE + else + ${ECHO} "wlan_restore_schemefile: No wlan_scheme\*.tmp file found." + fi +} + +wlan_bring_it_up () +{ + # $1 == wlandev + # $2 == non-null if wext enabled. + + #=======ENABLE======================================== + # Do we want to init the card at all? + eval 'WLAN_ENABLE=$ENABLE_'$1 + + if ! is_true $WLAN_ENABLE ; then + return 1 + fi + + if wlan_enable $1 ; then + if [ -z "$2" ] ; then + wlan_scan_and_join $1 + return $? + else + ${ECHO} "Bypassing configuration due to wireless extensions" + fi + else + return 1; + fi + + return 1 +} + +wlan_scan_and_join () +{ + #=======MAC STARTUP========================================= + wlan_supports_scan $1 + if [ $? = 0 ] ; then + wlan_scan $1 + if [ $? = 0 ] ; then + wlan_source_config_for_ssid "$ssid" "$bssid" + + wlan_user_mibs $1 + wlan_wep $1 + + wlan_join $1 + else + if is_true $IS_ADHOC ; then + # start an IBSS; we didn't find one. + wlan_adhoc $1 + else + return 1 + fi + fi + else + wlan_source_config $1 + + wlan_user_mibs $1 + wlan_wep $1 + + if is_true $IS_ADHOC ; then + wlan_adhoc $1 + else + wlan_infra $1 + fi + fi + + return $? +} + +wlan_join () +{ + # $1 == wlandev + grep 'autojoin' /proc/net/p80211/$1/wlandev > /dev/null + if [ $? = 0 ]; then + wlan_infra $1 + else + wlan_dot11_join $1 + wlan_dot11_auth_assoc $1 + fi +} + +tmpname () +{ + # $1 == prefix + local i=0 + local tname=$TMPDIR/${1}_$$ + if [ -f ${tname}.tmp ] ; then + for i in 0 1 2 3 4 5 6 7 8 9 ; do + if [ ! -f ${tname}_${i}.tmp ] ; then + echo ${tname}_${i}.tmp + return 0 + fi + done + else + echo ${tname}.tmp + fi + return 0 +} + +source_procfile () +{ + # $1 == procfile to source + local fname=`tmpname wlan_procfile` + cat "$1" > $fname + . $fname + rm -f $fname +} + +# This is set by the Configure script as part of 'make install' +#FIRMWARE_DIR="/usr/share/linux-wlan" diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base new file mode 100644 index 0000000..879dd14 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base @@ -0,0 +1,46 @@ +#! /bin/bash + + +# script to start prism2 wlan for fedora FC5 udev +#udev rule +#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb",RUN+="/etc/wlan/wlan-udev.sh %k" + +# 01-01-2007 (rsk) add check for wlan_wext_write +# 31-01-2007 (rsk) get the check right this time :) + +WEXT_PARAM=/sys/module/p80211/parameters/wlan_wext_write + +DEVICE=$1 +WLAN_UDEV=1 + +. /etc/wlan/shared + +if [ -f $WEXT_PARAM ]; then + WLAN_WEXT=`cat $WEXT_PARAM` +fi + +if [ $WLAN_WEXT = 1 ]; then + wlan_bring_it_up $DEVICE TRUE + # set encrypt on card not host + result=`$WLANCTL $DEVICE lnxreq_hostwep decrypt="false" encrypt="false"` + if [ $? != 0 ]; then + echo "Cannot enable wep $result" + exit 1 + fi +else + echo calling wlan_bring_it_up + wlan_bring_it_up $DEVICE + + if [ $? = 0 ] ; then + echo $DEVICE start OK + #allow time during boot to let other things start + #sleep 5 + /sbin/ifup $DEVICE + else + echo $DEVICE failed to come up! >&2 + exit 1 + fi +fi +exit 0 + + diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base new file mode 100644 index 0000000..fc8dcfa --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base @@ -0,0 +1,84 @@ +#! /bin/sh +# Wireless LAN adapter configuration +# +# etc/wlan/wlan.conf +# +# 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. +# +# -------------------------------------------------------------------- +# This file is sourced by all configuration scripts. +# +# The WLAN_DEVICES variable identifies the device names of each WLAN device. +# If you have more than one, make sure each one is identified in a whitespace +# separated list that's assigned to WLAN_DEVICES. + +WLAN_DEVICES="wlan0" + +# Below is the list of channels to scan, when we scan. +ChannelList="01:02:03:04:05:06:07:08:09:0a:0b:00:00:00" +# Below is the min and max time we linger on a channel during a scan. +ChannelMinTime=200 +ChannelMaxTime=250 +# And here we have the master scan toggle. +WLAN_SCAN=n + +# if you want temporary files to go elsewhere, change this. +TMPDIR=/tmp + +########## +# Note: To bind to a specific network, change the SSID to something different +# and create the file /etc/wlan/wlancfg-<SSID> with your network- +# specific settings. If this file is not present, the settings in +# /etc/wlancfg/wlancfg-DEFAULT are used. +# +# for example: +# SSID_wlan0="linux-wlan" +# This expects a file called "/etc/wlan/wlancfg-linux-wlan" to be present. +# +# Use a SSID of "" to associate with any network in range. +######### + +SSID_wlan0="" +ENABLE_wlan0=y +#SSID_wlan1="" +#ENABLE_wlan1=n +#SSID_wlan2="" +#ENABLE_wlan2=n diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base new file mode 100644 index 0000000..d916034 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base @@ -0,0 +1,43 @@ +#=======USER MIB SETTINGS============================= +# You can add the assignments for various MIB items +# of your choosing to this variable, separated by +# whitespace. The wlan-ng script will then set each one. +# Just uncomment the variable and set the assignments +# the way you want them. + +#USER_MIBS="p2CnfRoamingMode=1 p2CnfShortPreamble=mixed" + +#=======WEP=========================================== +# [Dis/En]able WEP. Settings only matter if PrivacyInvoked is true +lnxreq_hostWEPEncrypt=false # true|false +lnxreq_hostWEPDecrypt=false # true|false +dot11PrivacyInvoked=false # true|false +dot11WEPDefaultKeyID=0 # 0|1|2|3 +dot11ExcludeUnencrypted=true # true|false, in AP this means WEP is required. + +# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate +# keys (just a convenience) +# add-ons/ in the tarball contains other key generators. +PRIV_GENERATOR=/sbin/nwepgen # nwepgen, Neesus compatible +PRIV_KEY128=false # keylength to generate +PRIV_GENSTR="" + +# or set them explicitly. Set genstr or keys, not both. +dot11WEPDefaultKey0= # format: xx:xx:xx:xx:xx or +dot11WEPDefaultKey1= # xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx +dot11WEPDefaultKey2= # e.g. 01:20:03:40:05 or +dot11WEPDefaultKey3= # 01:02:03:04:05:06:07:08:09:0a:0b:0c:0d +#=======SELECT STATION MODE=================== +IS_ADHOC=n # y|n, y - adhoc, n - infrastructure + +#======= INFRASTRUCTURE STATION =================== +# What kind of authentication? +AuthType="opensystem" # opensystem | sharedkey (requires WEP) + +#======= ADHOC STATION ============================ +BCNINT=100 # Beacon interval (in Kus) +CHANNEL=6 # DS channel for BSS (1-14, depends + # on regulatory domain) +BASICRATES="2 4" # Rates for mgmt&ctl frames (in 500Kb/s) +OPRATES="2 4 11 22" # Supported rates in BSS (in 500Kb/s) + diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/Makefile b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/Makefile new file mode 100644 index 0000000..8133cf3 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/Makefile @@ -0,0 +1,64 @@ +# etc/wlan/Makefile +# +# 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. +# +# -------------------------------------------------------------------- + +-include ../../config.mk + +all: + echo "Nothing to do" + +clean: + echo "Nothing to do" + +install: + mkdir -p $(TARGET_ROOT_ON_HOST)/etc/wlan + if [ ! -f $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ] ; then \ + cp wlan.conf $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ; \ + fi + cp shared wlancfg-DEFAULT wlan-udev.sh \ + $(TARGET_ROOT_ON_HOST)/etc/wlan + chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlancfg-* + chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf + chmod 755 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan-udev.sh + echo FIRMWARE_DIR=$(FIRMWARE_DIR) >> $(TARGET_ROOT_ON_HOST)/etc/wlan/shared + diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/shared b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/shared new file mode 100644 index 0000000..5d84bb8 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/shared @@ -0,0 +1,738 @@ +#!/bin/bash +# etc/wlan/shared +# +# Copyright (C) 2002 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. +# +# -------------------------------------------------------------------- + +TMPDIR=/tmp + +if [ ! -n "$ECHO" ]; then + ECHO=echo +fi + +if [ ! -n "$WLAN_UDEV" ] ; then +if [ -x /sbin/modprobe ] ; then + MODPROBE=/sbin/modprobe +else + ${ECHO} "/sbin/modprobe not found." + exit 1 +fi +fi + +if [ -x /sbin/wlanctl-ng ] ; then + WLANCTL=/sbin/wlanctl-ng +else + ${ECHO} "/sbin/wlanctl-ng not found." + exit 1 +fi + +# linux-wlan-ng > 0.2.4 there is no wland +#if [ -x /sbin/wland ] ; then +# WLAND=/sbin/wland +#else +# ${ECHO} "/sbin/wland not found." +# exit 1 +#fi + +if [ -z "$WLAN_UDEV" ] ; then + HAS_HOTPLUG=n + if [ -f /proc/sys/kernel/hotplug -a \ + -f /etc/hotplug/wlan.agent ] ; then + HOTPLUGGER=$(</proc/sys/kernel/hotplug) + if [ -n "$HOTPLUGGER" ] ; then + if [ -x $HOTPLUGGER ] ; then + HAS_HOTPLUG=y + fi + fi + fi +fi + +# Source the wlan configuration +if [ -f /etc/wlan/wlan.conf ] ; then + . /etc/wlan/wlan.conf +else + ${ECHO} "/etc/wlan/wlan.conf not found." + exit 0 +fi + +# Source NSD specific functions +# nsd_fwload +# nsd_mibset +# Debian mod. If there is shared.dpkg-old we get a endless loop +if [ "`ls /etc/wlan/shared.* 2>/dev/null`" ]; then + for i in `find /etc/wlan -name 'shared.*' -a ! -name '*.dpkg*'` ; do + . $i + done +else + ${ECHO} "/etc/wlan/shared.* not found." + exit 0 +fi + +is_true () +{ + # $1 == string containing a t/f indicator. + + [ "$1" = "y" -o "$1" = "Y" -o "$1" = "yes" -o "$1" = "YES" \ + -o "$1" = "t" -o "$1" = "T" -o "$1" = "true" -o "$1" = "TRUE" ] +} + +wlan_nsdname () +{ + # $1 == wlandev + # Writes the given device's name to stdout + grep 'nsd name' /proc/net/p80211/$1/wlandev | sed -e 's/.*: \(.*\)_.*/\1/' +} + +wlan_enable () +{ + # $1 == wlandev + + #=======ENABLE IFSTATE============================= + # Bring the device into its operable state + + # if running under udev module must be loaded to get here so skip checks + if [ ! -n "$WLAN_UDEV" ] ; then + + $MODPROBE $1 + + # First, make sure the driver is loaded.... + if ! ifconfig $1 > /dev/null 2>&1 ; then + ${ECHO} "Error: Device $1 does not seem to be present." + ${ECHO} "Make sure you've inserted the appropriate" + ${ECHO} "modules or that your modules.conf file contains" + ${ECHO} "the appropriate aliase(s)." + return 1 + fi + fi + # Call the nsd script's fwload function, in case the card needs + # a firmware load, or could use an optional one. + + nsdname=`wlan_nsdname $1` + if ! ${nsdname}_fwload $1 ; then + ${ECHO} "Firmware failed to load for device $1" + return 1 + fi + + # Enable the interface + result=`$WLANCTL $1 lnxreq_ifstate ifstate=enable` + if [ $? = 0 ] ; then + eval $result + if [ $resultcode != "success" ]; then + ${ECHO} "Failed to enable the device, resultcode=" \ + $resultcode "." + return 1 + fi + else + ${ECHO} "Failed to enable the device, exitcode=" $? "." + return 1 + fi + + # Set any NSD specific MIBs + ${nsdname}_mibset $1 +} + +wlan_user_mibs () +{ + # $1 == wlandev + + #=======USER MIB SETTINGS============================= + # Set the user specified MIB items. + for i in $USER_MIBS ; do + result=`$WLANCTL $1 dot11req_mibset "mibattribute=$i"` + if [ $? = 0 ] ; then + eval $result + if [ $resultcode != "success" ] ; then + ${ECHO} "Failed to set user MIB $i." + return 1 + fi + else + ${ECHO} "Failed to set user MIB $i." + return 1 + fi + done +} + +wlan_source_config () +{ + # $1 == wlandev + + # XXX what about stray singlequotes. + eval 'GOSSID="$SSID_'$1'"' + wlan_source_config_for_ssid "$GOSSID" +} + +wlan_source_config_for_ssid () +{ + # $1 == ssid[:bssid] + # $2 == bssid (optional) + + DesiredSSID="$1" + DesiredBSSID="$2" + + if [ -n "$2" ] ; then + token_ssid=`echo $1 | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'` + token_bssid=`echo $1 | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'` + if [ -n "$token_ssid" ] ; then + DesiredSSID="$token_ssid" + DesiredBSSID="$token_bssid" + fi + + fi + + if [ -f "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" ] ; then + . "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" + elif [ -f "/etc/wlan/wlancfg-$DesiredSSID" ] ; then + . "/etc/wlan/wlancfg-$DesiredSSID" + else + + if [ -n "$1" ] ; then + ${ECHO} "Failed to open network config file /etc/wlan/wlancfg-$1, using default." + fi + + . "/etc/wlan/wlancfg-DEFAULT" + fi +} + +wlan_disable () +{ + # $1 == wlandev + + $WLANCTL $1 lnxreq_ifstate ifstate=disable +} + +wlan_ssid_in_list () +{ + # $1 == wlandev, $2 == ssid, $3 == bssid + + eval 'GOSSID="$SSID_'$1'"' + + # This "eval" hackery is to allow escapes in GOSSID... + cmd="for token in $GOSSID ; do + ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` + bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` + + if [ -z \"\$ssid_token\" ] ; then + ssid_token="\$token" + fi + + if [ -n \"\$bssid_token\" ] ; then + if [ \"\$bssid_token\" = \"\$3\" ] ; then + return 0 + fi + elif [ \"\$2\" = \"\$ssid_token\" ] ; then + return 0 + fi + done" + eval "$cmd" + + return 1 +} + +wlan_supports_scan () +{ + # $1 == wlandev + + if is_true "$WLAN_SCAN" ; then + cat /proc/net/p80211/$1/wlandev | grep 'scan' > /dev/null + if [ $? = 0 ] ; then + return 0 + fi + fi + return 1 +} + +wlan_scan () +{ + # $1 == wlandev + + # find our allowed SSID list. + + # XXX what about stray singlequotes. + eval 'GOSSID="$SSID_'$1'"' + + # kick off a quick scan with the broadcast SSID. + wlan_scan_one $1 '' '' n + if [ $? = 0 -a \ + "$GOSSID" = "" ] ; then + # if successful and our ssid list is null, return. + sleep 1 + return 0 + fi + + # otherwise we walk through the list, and scan for eacn in turn. + # this "eval" hackery is to allow escapes in GOSSID + cmd="for token in $GOSSID ; do + ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\` + bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\` + + if [ -z \"\$ssid_token\" ] ; then + ssid_token=\"\$token\" + fi + + wlan_scan_one \$1 \"\$ssid_token\" \"\$bssid_token\" + if [ \$? = 0 ] ; then + sleep 1 + return 0 + fi + done" + eval "$cmd" + + # We got to the end of the list. Maybe try "any" + if is_true "$WLAN_ANY" ; then + wlan_scan_one $1 + sleep 1 + return $? + fi + + sleep 1 + return 1 +} + + +wlan_scan_one () +{ + # $1 == wlandev, [ $2 == ssid, $3 == bssid, $4 == append ] + + if [ -z "$4" ] ; then + append=true + else + append=false + fi + + numbss=0 + + result=`$WLANCTL $1 dot11req_scan bsstype=any bssid=ff:ff:ff:ff:ff:ff \ + scantype=active probedelay=0 channellist=$ChannelList ssid="$2" \ + minchanneltime=$ChannelMinTime maxchanneltime=$ChannelMaxTime append=$append` + eval $result + if [ $resultcode != 'success' ] ; then + ${ECHO} "Scan failed ($resultcode) " + return 1 + fi + + ## XXX if numbss == 0, repeat with $2 $3 $4? + + i=0 + bssfound="" + + # walk through the results and do first-cut matching. + while [ $i -lt $numbss ] ; do + result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` + eval $result + + if [ -n "$3" ] ; then + if [ "$3" = "$bssid" ] ; then + bssfound="$bssfound $i" + fi + elif [ -z "$2" ] ; then + # if our ssid is "", then we pick the first entry. + bssfound="$bssfound $i" + elif [ "$2" = "$ssid" ] ; then + bssfound="$bssfound $i" + fi + i=`expr $i + 1` + done + + if [ -z "$bssfound" ]; then # No BSSs found, bail. + return 1 + else + # Now find the closest + bigsignal=0 + for i in $bssfound ; do + result=`$WLANCTL $1 dot11req_scan_results bssindex=$i` + eval $result + if [ $bigsignal -lt $signal ]; then + bigsignal=$signal + bigbssindex=$i + fi + done + result=`$WLANCTL $1 dot11req_scan_results bssindex=$bigbssindex` + eval $result + return 0 + fi +} + +wlan_wep () +{ + # $1 == wlandev + + #=======WEP=========================================== + # Setup privacy + if [ ${dot11PrivacyInvoked:-"false"} = "false" ] ; then + return 0; + fi + + result=`$WLANCTL $1 dot11req_mibget mibattribute=dot11PrivacyOptionImplemented` + if [ $? = 0 ] ; then + eval $result + eval $mibattribute + else + ${ECHO} "dot11PrivacyOptionImplemented mibget failed." + return 1 + fi + + if [ $dot11PrivacyOptionImplemented = "false" ] ; then + ${ECHO} "Cannot enable privacy, dot11PrivacyOptionImplemented=false." + return 1 + fi + + # Do we want host-based WEP? + result=`$WLANCTL $1 lnxreq_hostwep \ + decrypt="${lnxreq_hostWEPDecrypt:-false}" \ + encrypt="${lnxreq_hostWEPEncrypt:-false}"` + + # set up the rest of the parametsrs. + if [ $dot11PrivacyOptionImplemented = "true" -a \ + $dot11PrivacyInvoked = "true" ] ; then + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKeyID=$dot11WEPDefaultKeyID ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11ExcludeUnencrypted=$dot11ExcludeUnencrypted ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked` + if [ "${PRIV_GENSTR:-empty}" != "empty" ] ; then + if [ ${PRIV_KEY128:-"false"} = "false" ]; then + keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 5` + else + keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 13` + fi + knum=0 + for i in $keys ; do + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey$knum=$i` + knum=`expr $knum + 1` + done + else + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey0=$dot11WEPDefaultKey0 ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey1=$dot11WEPDefaultKey1 ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey2=$dot11WEPDefaultKey2 ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11WEPDefaultKey3=$dot11WEPDefaultKey3 ` + fi + else + # disable wep explicitly. + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked ` + result=`$WLANCTL $1 dot11req_mibset \ + mibattribute=dot11ExcludeUnencrypted=false ` + fi +} + +wlan_adhoc () +{ + # $1 == wlandev + + #=======IBSS STARTUP================================== + startcmd="$WLANCTL $1 dot11req_start " + startcmd="$startcmd ssid=$DesiredSSID" + startcmd="$startcmd bsstype=independent" + startcmd="$startcmd beaconperiod=$BCNINT" + startcmd="$startcmd dtimperiod=3" + startcmd="$startcmd cfpollable=false" + startcmd="$startcmd cfpollreq=false" + startcmd="$startcmd cfpperiod=3" + startcmd="$startcmd cfpmaxduration=100" + startcmd="$startcmd probedelay=100" + startcmd="$startcmd dschannel=$CHANNEL" + j=1 + for i in $BASICRATES ; do + startcmd="$startcmd basicrate$j=$i" + j=`expr $j + 1` + done + + j=1 + for i in $OPRATES ; do + startcmd="$startcmd operationalrate$j=$i" + j=`expr $j + 1` + done + + results=`$startcmd` # Here's where it runs + if [ $? = 0 ]; then + eval $results + if [ $resultcode != "success" ] ; then + ${ECHO} "IBSS not started, resultcode=$resultcode" + exit 1 + else + ${ECHO} "IBSS mode started." + fi + else + ${ECHO} FAILED: $startcmd + return 1 + fi + WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_infra () +{ + # $1 == wlandev + + #==== INFRASTRUCURE STARTUP=========================== + # XXX TODO: Grok DesiredBSSID + + sleep 5 + results=`$WLANCTL $1 lnxreq_autojoin \ + "ssid=$DesiredSSID" \ + authtype=${AuthType:="opensystem"} | sed 's/\([^=]*\)=\(.*\)/\1="\2"/'` + eval $results + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} 'error: Autojoin indicated failure!' + return 1; + fi + + WLAN_SCHEMESSID="$DesiredSSID" +} + +wlan_dot11_join () +{ + # $1 == wlandev + + joincmd="$WLANCTL $1 dot11req_join bssid=$DesiredBSSID" + joincmd="$joincmd joinfailuretimeout=1" + + j=1 + for i in $OPRATES ; do + joincmd="$joincmd operationalrate$j=$i" + j=`expr $j + 1` + done + + results=`$joincmd` + + eval $results + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} "$1: JOIN Failure" + ${ECHO} "joincmd=$joincmd" + ${ECHO} "results=$results" + return 1; + fi +} + +wlan_dot11_auth_assoc () +{ + # $1 == wlandev + if [ $bsstype = "infrastructure" ] ; then + results=`$WLANCTL $1 dot11req_authenticate \ + peerstaaddress=$DesiredBSSID \ + authenticationtype=$AuthType \ + authenticationfailuretimeout=2000` + eval $results + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} "error: dot11req_authenticate failed, "\ + "resultcode=$resultcode" + return 1; + fi + results=`$WLANCTL $1 dot11req_associate \ + listeninterval=1000 \ + associatefailuretimeout=2000 ` + if [ ${resultcode:-"failure"} != "success" ] ; then + ${ECHO} 'error: dot11req_associate failed!' + return 1; + fi + fi +} + +wlan_set_ssid_schemefile () +{ + # $1 == SSID + + # Find the scheme file + if [ -r /var/lib/misc/pcmcia-scheme ] ; then + # Debian + WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" + elif [ -d /var/state/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" + elif [ -d /var/lib/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" + else + WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" + fi + + # Collect the current scheme name and save the file + if [ -r $WLAN_SCHEMEFILE ] ; then + WLAN_SCHEME=`cat $WLAN_SCHEMEFILE` + cp $WLAN_SCHEMEFILE /var/run/wlan_scheme_`date +"%T"`.tmp + else + touch /var/run/wlan_scheme_`date +"%T"`.tmp + + fi + + # Set up the <scheme:SSID> string + if [ ! "$WLAN_SCHEME" ] ; then + WLAN_SCHEME="default" + fi + WLAN_SCHEME="$WLAN_SCHEME:$1" + + # Write to schemefile + echo $WLAN_SCHEME > $WLAN_SCHEMEFILE +} + +wlan_restore_schemefile () +{ + # Find the scheme file + if [ -r /var/lib/misc/pcmcia-scheme ] ; then + # Debian + WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme" + elif [ -d /var/state/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/state/pcmcia/scheme" + elif [ -d /var/lib/pcmcia ] ; then + WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme" + else + WLAN_SCHEMEFILE="/var/run/pcmcia-scheme" + fi + + TMPFILE=`ls /var/run/wlan_scheme*.tmp | tail -n 1` + + if [ -r $TMPFILE ] ; then + cat $TMPFILE > $WLAN_SCHEMEFILE + rm -f $TMPFILE + else + ${ECHO} "wlan_restore_schemefile: No wlan_scheme\*.tmp file found." + fi +} + +wlan_bring_it_up () +{ + # $1 == wlandev + # $2 == non-null if wext enabled. + + #=======ENABLE======================================== + # Do we want to init the card at all? + eval 'WLAN_ENABLE=$ENABLE_'$1 + + if ! is_true $WLAN_ENABLE ; then + return 1 + fi + + if wlan_enable $1 ; then + if [ -z "$2" ] ; then + wlan_scan_and_join $1 + return $? + else + ${ECHO} "Bypassing configuration due to wireless extensions" + fi + else + return 1; + fi + + return 1 +} + +wlan_scan_and_join () +{ + #=======MAC STARTUP========================================= + wlan_supports_scan $1 + if [ $? = 0 ] ; then + wlan_scan $1 + if [ $? = 0 ] ; then + wlan_source_config_for_ssid "$ssid" "$bssid" + + wlan_user_mibs $1 + wlan_wep $1 + + wlan_join $1 + else + if is_true $IS_ADHOC ; then + # start an IBSS; we didn't find one. + wlan_adhoc $1 + else + return 1 + fi + fi + else + wlan_source_config $1 + + wlan_user_mibs $1 + wlan_wep $1 + + if is_true $IS_ADHOC ; then + wlan_adhoc $1 + else + wlan_infra $1 + fi + fi + + return $? +} + +wlan_join () +{ + # $1 == wlandev + grep 'autojoin' /proc/net/p80211/$1/wlandev > /dev/null + if [ $? = 0 ]; then + wlan_infra $1 + else + wlan_dot11_join $1 + wlan_dot11_auth_assoc $1 + fi +} + +tmpname () +{ + # $1 == prefix + local i=0 + local tname=$TMPDIR/${1}_$$ + if [ -f ${tname}.tmp ] ; then + for i in 0 1 2 3 4 5 6 7 8 9 ; do + if [ ! -f ${tname}_${i}.tmp ] ; then + echo ${tname}_${i}.tmp + return 0 + fi + done + else + echo ${tname}.tmp + fi + return 0 +} + +source_procfile () +{ + # $1 == procfile to source + local fname=`tmpname wlan_procfile` + cat "$1" > $fname + . $fname + rm -f $fname +} + +# This is set by the Configure script as part of 'make install' +#FIRMWARE_DIR="/usr/share/linux-wlan" diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlan-udev.sh b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlan-udev.sh new file mode 100644 index 0000000..879dd14 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlan-udev.sh @@ -0,0 +1,46 @@ +#! /bin/bash + + +# script to start prism2 wlan for fedora FC5 udev +#udev rule +#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb",RUN+="/etc/wlan/wlan-udev.sh %k" + +# 01-01-2007 (rsk) add check for wlan_wext_write +# 31-01-2007 (rsk) get the check right this time :) + +WEXT_PARAM=/sys/module/p80211/parameters/wlan_wext_write + +DEVICE=$1 +WLAN_UDEV=1 + +. /etc/wlan/shared + +if [ -f $WEXT_PARAM ]; then + WLAN_WEXT=`cat $WEXT_PARAM` +fi + +if [ $WLAN_WEXT = 1 ]; then + wlan_bring_it_up $DEVICE TRUE + # set encrypt on card not host + result=`$WLANCTL $DEVICE lnxreq_hostwep decrypt="false" encrypt="false"` + if [ $? != 0 ]; then + echo "Cannot enable wep $result" + exit 1 + fi +else + echo calling wlan_bring_it_up + wlan_bring_it_up $DEVICE + + if [ $? = 0 ] ; then + echo $DEVICE start OK + #allow time during boot to let other things start + #sleep 5 + /sbin/ifup $DEVICE + else + echo $DEVICE failed to come up! >&2 + exit 1 + fi +fi +exit 0 + + diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlan.conf b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlan.conf new file mode 100644 index 0000000..fc8dcfa --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlan.conf @@ -0,0 +1,84 @@ +#! /bin/sh +# Wireless LAN adapter configuration +# +# etc/wlan/wlan.conf +# +# 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. +# +# -------------------------------------------------------------------- +# This file is sourced by all configuration scripts. +# +# The WLAN_DEVICES variable identifies the device names of each WLAN device. +# If you have more than one, make sure each one is identified in a whitespace +# separated list that's assigned to WLAN_DEVICES. + +WLAN_DEVICES="wlan0" + +# Below is the list of channels to scan, when we scan. +ChannelList="01:02:03:04:05:06:07:08:09:0a:0b:00:00:00" +# Below is the min and max time we linger on a channel during a scan. +ChannelMinTime=200 +ChannelMaxTime=250 +# And here we have the master scan toggle. +WLAN_SCAN=n + +# if you want temporary files to go elsewhere, change this. +TMPDIR=/tmp + +########## +# Note: To bind to a specific network, change the SSID to something different +# and create the file /etc/wlan/wlancfg-<SSID> with your network- +# specific settings. If this file is not present, the settings in +# /etc/wlancfg/wlancfg-DEFAULT are used. +# +# for example: +# SSID_wlan0="linux-wlan" +# This expects a file called "/etc/wlan/wlancfg-linux-wlan" to be present. +# +# Use a SSID of "" to associate with any network in range. +######### + +SSID_wlan0="" +ENABLE_wlan0=y +#SSID_wlan1="" +#ENABLE_wlan1=n +#SSID_wlan2="" +#ENABLE_wlan2=n diff --git a/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlancfg-DEFAULT b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlancfg-DEFAULT new file mode 100644 index 0000000..d916034 --- /dev/null +++ b/abs/core-testing/wlan-ng26-utils-svn/tmp/trunk/etc/wlan/wlancfg-DEFAULT @@ -0,0 +1,43 @@ +#=======USER MIB SETTINGS============================= +# You can add the assignments for various MIB items +# of your choosing to this variable, separated by +# whitespace. The wlan-ng script will then set each one. +# Just uncomment the variable and set the assignments +# the way you want them. + +#USER_MIBS="p2CnfRoamingMode=1 p2CnfShortPreamble=mixed" + +#=======WEP=========================================== +# [Dis/En]able WEP. Settings only matter if PrivacyInvoked is true +lnxreq_hostWEPEncrypt=false # true|false +lnxreq_hostWEPDecrypt=false # true|false +dot11PrivacyInvoked=false # true|false +dot11WEPDefaultKeyID=0 # 0|1|2|3 +dot11ExcludeUnencrypted=true # true|false, in AP this means WEP is required. + +# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate +# keys (just a convenience) +# add-ons/ in the tarball contains other key generators. +PRIV_GENERATOR=/sbin/nwepgen # nwepgen, Neesus compatible +PRIV_KEY128=false # keylength to generate +PRIV_GENSTR="" + +# or set them explicitly. Set genstr or keys, not both. +dot11WEPDefaultKey0= # format: xx:xx:xx:xx:xx or +dot11WEPDefaultKey1= # xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx +dot11WEPDefaultKey2= # e.g. 01:20:03:40:05 or +dot11WEPDefaultKey3= # 01:02:03:04:05:06:07:08:09:0a:0b:0c:0d +#=======SELECT STATION MODE=================== +IS_ADHOC=n # y|n, y - adhoc, n - infrastructure + +#======= INFRASTRUCTURE STATION =================== +# What kind of authentication? +AuthType="opensystem" # opensystem | sharedkey (requires WEP) + +#======= ADHOC STATION ============================ +BCNINT=100 # Beacon interval (in Kus) +CHANNEL=6 # DS channel for BSS (1-14, depends + # on regulatory domain) +BASICRATES="2 4" # Rates for mgmt&ctl frames (in 500Kb/s) +OPRATES="2 4 11 22" # Supported rates in BSS (in 500Kb/s) + |