diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-04-19 15:41:49 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-04-19 15:41:49 +0000 |
commit | ea07da5fe56327c26ab8e3ad6544bc15a1767955 (patch) | |
tree | 60eee1ce2d51847d93365a9e190b39e645aad76a /package/hostapd/patches/730-fix_wds_bridge_handling.patch | |
parent | 9d0882b720abb6076dfcfc7f6c0685bf33123146 (diff) | |
download | upstream-ea07da5fe56327c26ab8e3ad6544bc15a1767955.tar.gz upstream-ea07da5fe56327c26ab8e3ad6544bc15a1767955.tar.bz2 upstream-ea07da5fe56327c26ab8e3ad6544bc15a1767955.zip |
hostapd: fix bridge handling for wds stations (#9257)
SVN-Revision: 26724
Diffstat (limited to 'package/hostapd/patches/730-fix_wds_bridge_handling.patch')
-rw-r--r-- | package/hostapd/patches/730-fix_wds_bridge_handling.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/package/hostapd/patches/730-fix_wds_bridge_handling.patch b/package/hostapd/patches/730-fix_wds_bridge_handling.patch new file mode 100644 index 0000000000..c5c8606d85 --- /dev/null +++ b/package/hostapd/patches/730-fix_wds_bridge_handling.patch @@ -0,0 +1,29 @@ +--- a/src/drivers/driver_nl80211.c ++++ b/src/drivers/driver_nl80211.c +@@ -5487,6 +5487,9 @@ static int i802_set_wds_sta(void *priv, + linux_set_iface_flags(drv->ioctl_sock, name, 1); + return i802_set_sta_vlan(priv, addr, name, 0); + } else { ++ if (bridge_ifname) ++ linux_br_del_if(drv->ioctl_sock, bridge_ifname, name); ++ + i802_set_sta_vlan(priv, addr, bss->ifname, 0); + return wpa_driver_nl80211_if_remove(priv, WPA_IF_AP_VLAN, + name); +@@ -5927,14 +5930,14 @@ static int wpa_driver_nl80211_if_remove( + return -1; + + #ifdef HOSTAPD +- if (bss->added_if_into_bridge) { ++ if (type == WPA_IF_AP_BSS && bss->added_if_into_bridge) { + if (linux_br_del_if(drv->ioctl_sock, bss->brname, bss->ifname) + < 0) + wpa_printf(MSG_INFO, "nl80211: Failed to remove " + "interface %s from bridge %s: %s", + bss->ifname, bss->brname, strerror(errno)); + } +- if (bss->added_bridge) { ++ if (type == WPA_IF_AP_BSS && bss->added_bridge) { + if (linux_br_del(drv->ioctl_sock, bss->brname) < 0) + wpa_printf(MSG_INFO, "nl80211: Failed to remove " + "bridge %s: %s", |