allow firstboot to be rerun
[openwrt.git] / root / etc / networking.sh
index 1a2be2e..e59ec60 100755 (executable)
@@ -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#*:}
This page took 0.03523 seconds and 4 git commands to generate.