summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xroot/etc/networking.sh32
1 files changed, 13 insertions, 19 deletions
diff --git a/root/etc/networking.sh b/root/etc/networking.sh
index 1a2be2e9d..e59ec606e 100755
--- a/root/etc/networking.sh
+++ b/root/etc/networking.sh
@@ -16,32 +16,30 @@ mac2if () {
# allow env to override nvram
nvram_get () {
- eval "echo \${$1:=\$(nvram get $1)}"
+ eval "echo \${$1:-\$(nvram get $1)}"
}
# valid interface?
if_valid () {
- [ "${1%[0-9]}" = "vlan" ] && {
- i=${1##vlan}
+ [ "${1%%[0-9]}" = "vlan" ] && {
+ i=${1#vlan}
hwname=$(nvram_get vlan${i}hwname)
hwaddr=$(nvram_get ${hwname}macaddr)
[ -z "$hwaddr" ] && return 1
vif=$(mac2if $hwaddr)
- echo "# vlan${i}: $hwname $hwaddr => $vif"
+ echo "# vlan$i: $hwname $hwaddr => $vif"
$DEBUG ifconfig $vif up
$DEBUG vconfig add $vif $i 2>/dev/null
}
- ifconfig "$1" >/dev/null 2>&1 || [ "${1%[0-9]}" = "br" ]
+ ifconfig "$1" >/dev/null 2>&1 || [ "${1%%[0-9]}" = "br" ]
return $?
}
wifi_init () {
echo "# --- wifi init ---"
- # assume wifi is eth2, fall back to eth1
- if="eth2"
- if_valid $if || if="eth1"
+ if=$(awk 'gsub(":","") {print $1}' /proc/net/wireless)
$DEBUG wlconf $if up
}
@@ -50,13 +48,13 @@ configure () {
echo "# --- $type ---"
if=$(nvram_get ${type}_ifname)
- if [ "${if%[0-9]}" = "ppp" ]; then
+ if [ "${if%%[0-9]}" = "ppp" ]; then
if=$(nvram_get pppoe_ifname)
fi
if_valid $if || return
$DEBUG ifconfig $if down
- if [ "${if%[0-9]}" = "br" ]; then
+ if [ "${if%%[0-9]}" = "br" ]; then
stp=$(nvram_get ${type}_stp)
$DEBUG brctl delbr $if
$DEBUG brctl addbr $if
@@ -67,7 +65,7 @@ configure () {
if_valid $sif || continue
$DEBUG ifconfig $sif 0.0.0.0 up
$DEBUG brctl addif $if $sif
- }; done
+ } done
fi
if_mac=$(nvram_get ${type}_hwaddr)
@@ -92,7 +90,7 @@ configure () {
echo "# --- creating /etc/resolv.conf ---"
for dns in $(nvram_get ${type}_dns); do {
echo "nameserver $dns" >> /etc/resolv.conf
- }; done
+ } done
;;
dhcp)
pidfile=/tmp/dhcp-${type}.pid
@@ -118,8 +116,6 @@ configure () {
}
### START NETWORKING ###
-wifi_init
-
$DEBUG vconfig set_name_type VLAN_PLUS_VID_NO_PAD
# hacks for 1.x hardware
@@ -134,11 +130,7 @@ $DEBUG vconfig set_name_type VLAN_PLUS_VID_NO_PAD
# use the old names to preserve backwards
# compatibility
remap () {
- eval $1=\"$(nvram_get $1 | awk '{
- gsub(/eth0/,"vlan2")
- gsub(/eth1/,"vlan1")
- print $0
- }')\"
+ eval $1=\"$(nvram_get $1 | awk 'gsub("eth0","vlan2") gsub("eth1","vlan1")')\"
}
remap lan_ifname
@@ -168,6 +160,8 @@ configure lan
configure wifi
configure wan
+wifi_init
+
for route in $(nvram_get static_route); do {
ip=${route%%:*} route=${route#*:}
netmask=${route%%:*} route=${route#*:}