diff options
Diffstat (limited to 'root')
| -rwxr-xr-x | root/etc/networking.sh | 32 | 
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#*:} | 
