From 9d1a5b497c8350eb26ce173fc2401b71516a649c Mon Sep 17 00:00:00 2001
From: Mike Baker <mbm@openwrt.org>
Date: Sat, 11 Dec 2004 07:28:27 +0000
Subject: [PATCH] cleanup code, fix debug output

SVN-Revision: 184
---
 .../sources/openwrt/root/etc/functions.sh     | 31 ++++++++++---------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/obsolete-buildroot/sources/openwrt/root/etc/functions.sh b/obsolete-buildroot/sources/openwrt/root/etc/functions.sh
index 1d341152f38..75500a2aab1 100755
--- a/obsolete-buildroot/sources/openwrt/root/etc/functions.sh
+++ b/obsolete-buildroot/sources/openwrt/root/etc/functions.sh
@@ -12,19 +12,22 @@ nvram () {
 . /etc/nvram.overrides
 
 # valid interface?
-if_valid () (
-  [ "${1%%[0-9]}" = "vlan" ] && {
-    i=${1#vlan}
-    hwname=$(nvram get vlan${i}hwname)
-    hwaddr=$(nvram get ${hwname}macaddr)
-    [ -z "$hwaddr" ] && return 1
+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: $hwname $hwaddr => $vif"
+      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>/dev/null
-  }
-  ifconfig "$1" >/dev/null 2>&1 || [ "${1%%[0-9]}" = "br" ]
-  [ $? = 0 ] || { echo -e "# $1 ignored: no such interface"; return 1; }
-)
+      $DEBUG ifconfig $vif up
+      $DEBUG vconfig add $vif $i 2>&-
+    )
+  } ||
+  { echo -e "# $1 ignored: can't find/create"; false; }
+}