From 5076114aa70b102ffabdb5023ccae4b299be82df Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Mon, 9 Apr 2007 18:56:26 +0000 Subject: [PATCH] routes_SSID now works, as does iwconfig.sh for BSD --- net.BSD/iwconfig.sh | 31 ++++++++++++++++++++++--------- sh/net.sh | 2 +- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/net.BSD/iwconfig.sh b/net.BSD/iwconfig.sh index aa9057b4..e7134082 100644 --- a/net.BSD/iwconfig.sh +++ b/net.BSD/iwconfig.sh @@ -97,7 +97,7 @@ iwconfig_setup_specific() { local key=$(iwconfig_get_wep_key) # Now set the key - ifconfig "${IFACE}" wepkey ${key} + eval ifconfig "${IFACE}" wepkey "${key}" ifconfig "${IFACE}" ssid "${ESSID}" || return 1 @@ -134,10 +134,23 @@ iwconfig_associate() { # Set mode accordingly case "${caps}" in - *E*) mode="managed"; ifconfig "${IFACE}" -mediaopt adhoc ;; - *I*) mode="adhoc"; ifconfig "${IFACE}" mediaopt adhoc ;; + *E*) + mode="managed" + if LC_ALL=C ifconfig "${IFACE}" | \ + grep -q "^[[:space:]]*media: .*adhoc" ; then + ifconfig "${IFACE}" down -mediaopt adhoc up + fi + ;; + *I*) + mode="adhoc" + if ! LC_ALL=C ifconfig "${IFACE}" | \ + grep -q "^[[:space:]]*media: .*adhoc" ; then + ifconfig "${IFACE}" down -mediaopt adhoc up + fi + ;; *) - if LC_ALL=C ifconfig "${IFACE}" | grep -q "^[[:space:]]*media: .*adhoc" ; then + if LC_ALL=C ifconfig "${IFACE}" \ + | grep -q "^[[:space:]]*media: .*adhoc" ; then mode="adhoc" else mode="managed" @@ -152,10 +165,10 @@ iwconfig_associate() { ifconfig "${IFACE}" deftxkey 1 w=$(iwconfig_get_wep_status) fi - + ebegin "Connecting to \"${SSID}\" in ${mode} mode ${w}" - - if ! ifconfig "${IFACE}" wepkey ${key} ; then + + if ! eval ifconfig "${IFACE}" wepkey "${key}" ; then eerror "Invalid WEP key ${key}" return 1 fi @@ -239,10 +252,10 @@ iwconfig_scan() { shift done eval MAC_${APS}="$(echo "$1" | tr '[:lower:]' '[:upper:]')" - eval CHAN_${APS}=$2 + eval CHAN_${APS}="$2" quality=${4%:*} shift ; shift ; shift ; shift ; shift - eval CAPS_${APS}=$* + eval CAPS_${APS}="\"$*\"" # Add 1000 for managed nodes as we prefer them to adhoc set -- $* diff --git a/sh/net.sh b/sh/net.sh index c839dd4c..30c68fc3 100755 --- a/sh/net.sh +++ b/sh/net.sh @@ -4,7 +4,7 @@ MODULESDIR="${RC_LIBDIR}/net" MODULESLIST="${RC_SVCDIR}/nettree" -_config_vars="config" +_config_vars="config routes" [ -z "${IN_BACKGROUND}" ] && IN_BACKGROUND=false