diff options
author | Felix Fietkau <nbd@openwrt.org> | 2006-10-15 16:23:36 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2006-10-15 16:23:36 +0000 |
commit | 60d2df5f70d6db05c5cb58b1834473d43e83377a (patch) | |
tree | 950270cd5fa1cbb0d656873cb5174d5b3db09706 /package | |
parent | a8195760736feab7017ee4aaa6d05b605bfb3323 (diff) | |
download | upstream-60d2df5f70d6db05c5cb58b1834473d43e83377a.tar.gz upstream-60d2df5f70d6db05c5cb58b1834473d43e83377a.tar.bz2 upstream-60d2df5f70d6db05c5cb58b1834473d43e83377a.zip |
implement network callbacks for broadcom wl
SVN-Revision: 5118
Diffstat (limited to 'package')
-rw-r--r-- | package/broadcom-wl/files/lib/wifi/broadcom.sh | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index bc90f088b4..5bb69da94f 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -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" } |