aboutsummaryrefslogtreecommitdiff
path: root/net.Linux
diff options
context:
space:
mode:
Diffstat (limited to 'net.Linux')
-rw-r--r--net.Linux/arping.sh28
-rw-r--r--net.Linux/bonding.sh13
-rw-r--r--net.Linux/bridge.sh20
-rw-r--r--net.Linux/ccwgroup.sh6
-rw-r--r--net.Linux/clip.sh13
-rw-r--r--net.Linux/ip6to4.sh5
-rw-r--r--net.Linux/iwconfig.sh48
-rw-r--r--net.Linux/pppd.sh35
-rw-r--r--net.Linux/vlan.sh18
9 files changed, 111 insertions, 75 deletions
diff --git a/net.Linux/arping.sh b/net.Linux/arping.sh
index 817f8b2d..68d04216 100644
--- a/net.Linux/arping.sh
+++ b/net.Linux/arping.sh
@@ -39,21 +39,30 @@ arping_address() {
return 0
}
+_arping_in_config() {
+ _get_array "config_${IFVAR}" | while read i; do
+ [ "${i}" = "arping" ] && return 0
+ done
+ return 1
+}
+
arping_start() {
local gateways= x= conf= i=
einfo "Pinging gateways on ${IFACE} for configuration"
- eval $(_get_array "gateways_${IFVAR}")
- if [ $# = 0 ] ; then
+ eval gateways=\$gateways_${IFVAR}
+ if [ -n "${gateways}" ] ; then
eerror "No gateways have been defined (gateways_${IFVAR}=\"...\")"
return 1
fi
eindent
- for x in "$@"; do
- eval set -- "${x}"
+ for x in ${gateways}; do
+ local IFS=,
+ set -- ${x}
local ip=$1 mac=$2 extra=
+ unset IFS
if [ -n "${mac}" ] ; then
mac="$(echo "${mac}" | tr '[:lower:]' '[:upper:]')"
@@ -90,13 +99,10 @@ arping_start() {
system_pre_start
# Ensure that we have a valid config - ie arping is no longer there
- eval $(_get_array "config_${IFVAR}")
- for i in "$@" ; do
- if [ "${i}" = "arping" ] ; then
- veend 1 "No config found for ${ip} (config_${conf}=\"...\")"
- continue 2
- fi
- done
+ if _arping_in_config; then
+ veend 1 "No config found for ${ip} (config_${conf}=\"...\")"
+ continue 2
+ fi
_load_config
return 0
diff --git a/net.Linux/bonding.sh b/net.Linux/bonding.sh
index 1f8b6377..ed3d9827 100644
--- a/net.Linux/bonding.sh
+++ b/net.Linux/bonding.sh
@@ -13,10 +13,9 @@ _is_bond() {
}
bonding_pre_start() {
- local s= slaves=
+ local s= slaves="$(_get_array "slaves_${IFVAR}")"
- eval $(_get_array "slaves_${IFVAR}")
- [ $# = "0" ] && return 0
+ [ -z "${slaves}" ] && return 0
# Load the kernel module if required
if [ ! -d /proc/net/bonding ] ; then
@@ -40,16 +39,16 @@ bonding_pre_start() {
ebegin "Adding slaves to ${IFACE}"
eindent
- einfo "$@"
+ einfo "${slaves}"
# Check that our slaves exist
(
- for IFACE in "$@" ; do
+ for IFACE in ${slaves}; do
_exists true || return 1
done
# Must force the slaves to a particular state before adding them
- for IFACE in "$@" ; do
+ for IFACE in ${slaves}; do
_delete_addresses
_up
done
@@ -60,7 +59,7 @@ bonding_pre_start() {
# finally add in slaves
eoutdent
- /sbin/ifenslave "${IFACE}" $@ >/dev/null
+ /sbin/ifenslave "${IFACE}" ${slaves} >/dev/null
eend $?
return 0 #important
diff --git a/net.Linux/bridge.sh b/net.Linux/bridge.sh
index a6913fd9..e5b1df65 100644
--- a/net.Linux/bridge.sh
+++ b/net.Linux/bridge.sh
@@ -13,12 +13,11 @@ _is_bridge() {
}
bridge_pre_start() {
- local ports= brif= opts= iface="${IFACE}" e= x=
- eval $(_get_array "bridge_${IFVAR}")
- ports="$@"
+ local ports= brif= iface="${IFACE}" e= x=
+ local ports="$(_get_array "bridge_${IFVAR}")"
+ local opts="$(_get_array "brctl_${IFVAR}")"
+
eval brif=\$bridge_add_${IFVAR}
- eval $(_get_array "brctl_${IFVAR}")
- opts="$@"
[ -z "${ports}" -a -z "${brif}" -a -z "${opts}" ] && return 0
[ -n "${ports}" ] && bridge_post_stop
@@ -32,7 +31,7 @@ bridge_pre_start() {
metric=1000
fi
- if ! _is_bridge ; then
+ if ! _is_bridge; then
ebegin "Creating bridge ${IFACE}"
if ! brctl addbr "${IFACE}" ; then
eend 1
@@ -40,8 +39,10 @@ bridge_pre_start() {
fi
fi
- eval $(_get_array "brctl_${IFVAR}")
- for x in "$@" ; do
+ local IFS="
+"
+ for x in ${opts}; do
+ unset IFS
set -- ${x}
x=$1
shift
@@ -53,8 +54,7 @@ bridge_pre_start() {
einfo "Adding ports to ${IFACE}"
eindent
- eval set -- ${ports}
- for x in "$@" ; do
+ for x in ${ports}; do
ebegin "${x}"
ifconfig "${x}" promisc up
if ! brctl addif "${IFACE}" "${x}" ; then
diff --git a/net.Linux/ccwgroup.sh b/net.Linux/ccwgroup.sh
index 1cba04cb..c32b1ffb 100644
--- a/net.Linux/ccwgroup.sh
+++ b/net.Linux/ccwgroup.sh
@@ -9,8 +9,8 @@ ccwgroup_depend() {
}
ccwgroup_pre_start() {
- eval $(_get_array "ccwgroup_${IFVAR}")
- [ $# = "0" ] && return 0
+ local ccwgroup="$(_get_array "ccwgroup_${IFVAR}")"
+ [ -z "${ccwgroup}" ] && return 0
if [ ! -d /sys/bus/ccwgroup ] ; then
modprobe qeth
@@ -22,7 +22,7 @@ ccwgroup_pre_start() {
einfo "Enabling ccwgroup on ${IFACE}"
local x= ccw= first= layer2=
- for x in "$@" ; do
+ for x in ${ccwgroup}; do
[ -z "${first}" ] && first=${x}
ccw="${ccw}${ccw:+,}${x}"
done
diff --git a/net.Linux/clip.sh b/net.Linux/clip.sh
index 7d3fef9b..771ec204 100644
--- a/net.Linux/clip.sh
+++ b/net.Linux/clip.sh
@@ -79,8 +79,9 @@ are_atmclip_svcs_running() {
}
clip_pre_start() {
- eval $(_get_array "clip_${IFVAR}")
- [ $# = 0 ] && return 0
+ local clip=
+ eval clip=\$clip_${IFVAR}
+ [ -z "${clip}" ] && return 0
if [ ! -r /proc/net/atm/arp ] ; then
modprobe clip && sleep 2
@@ -109,8 +110,8 @@ clip_pre_start() {
}
clip_post_start() {
- eval $(_get_array "clip_${IFVAR}")
- [ $# = 0 ] && return 0
+ local clip="$(_get_array "clip_${IFVAR}")"
+ [ -z "${clip}" ] && return 0
are_atmclip_svcs_running || return 1
@@ -129,8 +130,10 @@ clip_post_start() {
# reporting problems. Also, when no defined VC can be established,
# we stop the ATM daemons.
local has_failures= i=
- for i in "$@" ; do
+ for i in ${clip} ; do
+ local IFS=","
set -- ${i}
+ unset IFS
local peerip="$1"; shift
local ifvpivci="$1"; shift
ebegin "Creating PVC ${ifvpivci} for peer ${peerip}"
diff --git a/net.Linux/ip6to4.sh b/net.Linux/ip6to4.sh
index 54cbe8ae..a4a477a3 100644
--- a/net.Linux/ip6to4.sh
+++ b/net.Linux/ip6to4.sh
@@ -96,8 +96,9 @@ ip6to4_start() {
config_index=$((${config_index} - 1))
# Add a route for us, ensuring we don't delete anything else
- eval $(_get_array "routes_${IFVAR}")
- eval routes_${IFVAR}="\"$@ '2003::/3 via ::${relay} metric 2147483647'\""
+ local routes="$(_get_array "routes_${IFVAR}")
+2003::/3 via ::${relay} metric 2147483647"
+ eval routes_${IFVAR}=\$routes
}
# vim: set ts=4 :
diff --git a/net.Linux/iwconfig.sh b/net.Linux/iwconfig.sh
index 1caae611..5f1c1738 100644
--- a/net.Linux/iwconfig.sh
+++ b/net.Linux/iwconfig.sh
@@ -114,19 +114,26 @@ iwconfig_get_wep_key() {
}
iwconfig_user_config() {
- local conf= var=${SSIDVAR}
+ local conf= var=${SSIDVAR} config=
[ -z "${var}" ] && var=${IFVAR}
- eval "$(_get_array "iwconfig_${var}")"
- for conf in "$@" ; do
+ config="$(_get_array "iwconfig_${var}")"
+ local IFS="
+"
+ for conf in ${config}; do
+ unset IFS
if ! eval iwconfig "${IFACE}" "${conf}" ; then
ewarn "${IFACE} does not support the following configuration commands"
ewarn " ${conf}"
fi
done
+ unset IFS
- eval "$(_get_array "iwpriv_${var}")"
- for conf in "$@" ; do
+ config="$(_get_array "iwpriv_${var}")"
+ local IFS="
+"
+ for conf in ${config}; do
+ unset IFS
if ! eval iwpriv "${IFACE}" "${conf}" ; then
ewarn "${IFACE} does not support the following private ioctls"
ewarn " ${conf}"
@@ -472,13 +479,17 @@ iwconfig_scan() {
eoutdent
fi
- eval "$(_get_array "blacklist_aps")"
- for x in "$@" ; do
+ local blacklist="$(_get_array "blacklist_aps")"
+ local IFS="
+"
+ for x in ${blacklist}; do
+ unset IFS
if [ "${x}" = "${s}" ] ; then
ewarn "${s} has been blacklisted - not connecting"
unset SSID_${i} MAC_${i} CHAN_${i} QUALITY_${i} ENC_${i}
fi
done
+ unset IFS
i=$((${i} + 1))
done
eoutdent
@@ -488,9 +499,11 @@ iwconfig_force_preferred() {
[ -z "${preferred_aps}" ] && return 1
ewarn "Trying to force preferred in case they are hidden"
- eval "(_get_array "preferred_aps")"
- local ssid=
- for ssid in "$@"; do
+ local pref="$(_get_array "preferred_aps")" ssid=
+ local IFS="
+"
+ for ssid in ${pref}; do
+ unset IFS
local found_AP=false i=0 e=
while [ ${i} -le ${APS} ] ; do
eval e=\$SSID_${i}
@@ -512,9 +525,11 @@ iwconfig_force_preferred() {
iwconfig_connect_preferred() {
local ssid= i= mode= mac= enc= freq= chan=
-
- eval "$(_get_array preferred_aps)"
- for ssid in "$@"; do
+ local pref="$(_get_array preferred_aps)"
+ local IFS="
+"
+ for ssid in ${pref}; do
+ unset IFS
i=0
while [ ${i} -le ${APS} ] ; do
eval e=\$SSID_${i}
@@ -541,13 +556,16 @@ iwconfig_connect_not_preferred() {
while [ ${i} -le ${APS} ] ; do
eval e=\$SSID_${i}
if [ -n "${e}" ] ; then
- eval "$(_get_array preferred_aps)"
- for ssid in "$@" ; do
+ local prefa="$(_get_array preferred_aps)"
+ local IFS="
+"
+ for ssid in ${prefa}; do
if [ "${e}" = "${ssid}" ] ; then
pref=true
break
fi
done
+ unset IFS
if ! ${pref} ; then
SSID=${e}
diff --git a/net.Linux/pppd.sh b/net.Linux/pppd.sh
index 47d7dae3..07ac6b1f 100644
--- a/net.Linux/pppd.sh
+++ b/net.Linux/pppd.sh
@@ -33,7 +33,7 @@ pppd_pre_start() {
return 0
fi
- local link= i= opts= unit="${IFACE#ppp}" mtu=
+ local link= i= unit="${IFACE#ppp}" opts=
# PPP requires a link to communicate over - normally a serial port
# PPPoE communicates over Ethernet
@@ -57,16 +57,14 @@ pppd_pre_start() {
return 1
fi
- eval $(_get_array "pppd_${IFVAR}")
- opts="$@"
+ eval opts=\$pppd_${IFVAR}
local mtu= hasmtu=false hasmru=false hasmaxfail=false haspersist=false
local hasupdetach=false hasdefaultmetric=false
- for i in "$@" ; do
- set -- ${i}
- case "$1" in
+ for i in ${opts}; do
+ case "${i}" in
unit|nodetach|linkname)
- eerror "The option \"$1\" is not allowed in pppd_${IFVAR}"
+ eerror "The option \"${i}\" is not allowed in pppd_${IFVAR}"
return 1
;;
defaultmetric) hasdefaultmetric=true ;;
@@ -113,25 +111,31 @@ pppd_pre_start() {
# Load a custom interface configuration file if it exists
[ -f "/etc/ppp/options.${IFACE}" ] \
- && opts="${opts} file /etc/ppp/options.${IFACE}"
+ && opts="${opts} file '/etc/ppp/options.${IFACE}'"
# Set unit
opts="unit ${unit} ${opts}"
# Setup connect script
- local chatopts="/usr/sbin/chat -e -E -v"
- eval $(_get_array "phone_number_${IFVAR}")
+ local chatopts="/usr/sbin/chat -e -E -v" phone=
+ eval phone=\$phone_number_${IFVAR}
+ set -- ${phone}
[ -n "$1" ] && chatopts="${chatopts} -T '$1'"
[ -n "$2" ] && chatopts="${chatopts} -U '$2'"
- eval $(_get_array "chat_${IFVAR}")
- if [ $# != 0 ] ; then
+ local chat="$(_get_array "chat_${IFVAR}")"
+ if [ "${chat}" ] ; then
+ local IFS="
+"
opts="${opts} connect $(printf "\\'%s\\'" "${chatopts} $(printf "\\'\\\\'\\'%s\\'\\\'' " "$@")")"
+ unset IFS
fi
# Add plugins
- local haspppoa=false haspppoe=false
- eval $(_get_array "plugins_${IFVAR}")
- for i in "$@" ; do
+ local haspppoa=false haspppoe=false plugins="$(_get_array "plugins_${IFVAR}")"
+ local IFS="
+"
+ for i in ${plugins}; do
+ unset IFS
set -- ${i}
case "$1" in
passwordfd) continue;;
@@ -151,6 +155,7 @@ pppd_pre_start() {
shift
opts="${opts} $@"
done
+ unset IFS
#Specialized stuff. Insert here actions particular to connection type (pppoe,pppoa,capi)
local insert_link_in_opts=1
diff --git a/net.Linux/vlan.sh b/net.Linux/vlan.sh
index 1542d4c0..23cdf777 100644
--- a/net.Linux/vlan.sh
+++ b/net.Linux/vlan.sh
@@ -31,14 +31,17 @@ _check_vlan() {
}
vlan_pre_start() {
- eval $(_get_array "vconfig_${IFVAR}")
- [ $# = "0" ] && return 0
+ local vc="$(_get_array "vconfig_${IFVAR}")"
+ [ -z "${vc}" ] && return 0
_check_vlan || return 1
_exists || return 1
local v= x= e=
- for v in "$@" ; do
+ local IFS="
+"
+ for v in ${vc}; do
+ unset IFS
case "${v}" in
set_name_type" "*) x=${v} ;;
*) x="$(echo "${v}" | sed -e "s/ / ${IFACE} /g")"
@@ -56,14 +59,15 @@ vlan_pre_start() {
}
vlan_post_start() {
- eval $(_get_array "vlans_${IFVAR}")
- [ $# = "0" ] && return 0
+ local vlans=
+ eval vlans=\$vlans_${IFACE}
+ [ -z "${vlans}" ] && return 0
_check_vlan || return 1
_exists || return 1
local vlan= e= s=
- for vlan in "$@" ; do
+ for vlan in ${vlans}; do
einfo "Adding VLAN ${vlan} to ${IFACE}"
e="$(vconfig add "${IFACE}" "${vlan}" 2>&1 1>/dev/null)"
if [ -n "${e}" ] ; then
@@ -92,7 +96,7 @@ vlan_post_start() {
vlan_post_stop() {
local vlan=
- for vlan in $(_get_vlans) ; do
+ for vlan in $(_get_vlans); do
einfo "Removing VLAN ${vlan##*.} from ${IFACE}"
(
export SVCNAME="net.${vlan}"