From 7262a5c2296681b34bd97b91a3e34494b305981b Mon Sep 17 00:00:00 2001 From: nbd Date: Tue, 19 Apr 2011 15:43:24 +0000 Subject: [PATCH] hostapd: fix bridge handling for wds stations (#9257), backport of r26724 git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@26726 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/730-fix_wds_bridge_handling.patch | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 package/hostapd/patches/730-fix_wds_bridge_handling.patch 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 000000000..c5c8606d8 --- /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", -- 2.35.1