implement network callbacks for broadcom wl
authorFelix Fietkau <nbd@openwrt.org>
Sun, 15 Oct 2006 16:23:36 +0000 (16:23 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 15 Oct 2006 16:23:36 +0000 (16:23 +0000)
SVN-Revision: 5118

package/broadcom-wl/files/lib/wifi/broadcom.sh

index bc90f088b4c473d41eb377db64b534e4d7e2d164..5bb69da94f3fd0a104fb8e4fd34e29b703431f46 100644 (file)
@@ -1,16 +1,34 @@
 append DRIVERS "broadcom"
 
-bridge_interface() {
-       (
-               . /etc/functions.sh
-               include network
+find_vif_config() {(
+       local vif="$1"
+       local cfg
+       local ifname
+
+       config_get cfg "$vif" network
+
+       [ -z "$cfg" ] && {
+               include /lib/network
                scan_interfaces
-               cfg="$(find_config "$1")"
-               [ -z "$cfg" ] && return 0
-               config_get iftype "$cfg" type
-               [ "$iftype" = bridge ] && config_get "$iftype" bridge
-       )
-}
+
+               config_get ifname "$vif" ifnamea
+
+               cfg="$(find_config "$ifname")"
+       }
+       [ -z "$cfg" ] && return 0
+       echo "$cfg"
+)}
+
+bridge_interface() {(
+       local cfg="$1"
+       [ -z "$cfg" ] && return 0
+
+       include /lib/network
+       scan_interfaces
+
+       config_get iftype "$cfg" type
+       [ "$iftype" = bridge ] && config_get "$iftype" ifname
+)}
 
 scan_broadcom() {
        local device="$1"
@@ -154,8 +172,12 @@ enable_broadcom() {
                
                config_get ifname "$vif" ifname
                append if_up "ifconfig $ifname up" ";$N"
+               net_cfg="$(find_vif_config "$vif")"
+               [ -z "$net_cfg" ] || {
+                       bridge="$(bridge_interface "$net_cfg")"
+                       append if_up "start_net '$ifname' '$net_cfg'" ";$N"
+               }
                [ -z "$nasopts" ] || {
-                       bridge="$(bridge_interface "$ifname")"
                        eval "${vif}_ssid=\"\$ssid\""
                        mode="-A"
                        [ "$vif" = "$sta_if" ] && mode="-S"
@@ -185,8 +207,8 @@ $vif_pre_up
 up
 $vif_post_up
 EOF
-       eval "$nas_cmd"
        eval "$if_up"
+       eval "$nas_cmd"
 }