Merged enhancements submitted by Stereo, thanks, closes #188 and #189
[openwrt/svn-archive/archive.git] / openwrt / package / base-files / default / etc / functions.sh
index 14f5011db700ac86b15caeffb4eb19376d3d7f88..e7126473f468254eb5bf0beaed0623f6a8ee15c1 100755 (executable)
@@ -1,43 +1,19 @@
-#!/bin/ash
+#!/bin/sh
+. /etc/nvram.sh
 
 alias debug=${DEBUG:-:}
 
-# allow env to override nvram
-nvram () {
-  if [ -x /usr/sbin/nvram ]; then
-    case $1 in
-      get) eval "echo \${$2:-\$(command nvram get $2)}";;
-      *) command nvram $*;;
-    esac
-  else
-    case $1 in
-      get) eval "echo \${$2:-\${DEFAULT_$2}}";;
-      *);;
-    esac
-  fi  
-}
-
 # valid interface?
 if_valid () (
   ifconfig "$1" >&- 2>&- ||
   [ "${1%%[0-9]}" = "br" ] ||
-  {
-    [ "${1%%[0-9]}" = "vlan" ] && ( 
-      i=${1#vlan}
-      hwname=$(nvram get vlan${i}hwname)
-      hwaddr=$(nvram get ${hwname}macaddr)
-      [ -z "$hwaddr" ] && return 1
-
-      vif=$(ifconfig -a | awk '/^eth.*'$hwaddr'/ {print $1; exit}' IGNORECASE=1)
-      debug "# vlan$i => $vif"
-
-      $DEBUG ifconfig $vif up
-      $DEBUG vconfig add $vif $i 2>&-
-    )
-  } ||
   { debug "# missing interface '$1' ignored"; false; }
 )
 
+hotplug_dev() {
+       env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug net
+}
+
 bitcount () {
   local c=$1
   echo $((