CC: hostapd: fix mesh interface bridge handling

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48529
master
Felix Fietkau 2016-01-28 17:20:10 +00:00 committed by Zoltan HERPAI
parent 324f95d2a1
commit d04634f2b7
5 changed files with 22 additions and 10 deletions

View File

@ -0,0 +1,12 @@
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -2262,7 +2262,8 @@ wpa_driver_nl80211_finish_drv_init(struc
if (drv->hostapd || bss->static_ap)
nlmode = NL80211_IFTYPE_AP;
- else if (bss->if_dynamic)
+ else if (bss->if_dynamic ||
+ nl80211_get_ifmode(bss) == NL80211_IFTYPE_MESH_POINT)
nlmode = nl80211_get_ifmode(bss);
else
nlmode = NL80211_IFTYPE_STATION;

View File

@ -1,6 +1,6 @@
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -3708,7 +3708,7 @@ static int nl80211_set_channel(struct i8
@@ -3709,7 +3709,7 @@ static int nl80211_set_channel(struct i8
freq->freq, freq->ht_enabled, freq->vht_enabled,
freq->bandwidth, freq->center_freq1, freq->center_freq2);

View File

@ -1,6 +1,6 @@
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -2323,13 +2323,18 @@ wpa_driver_nl80211_finish_drv_init(struc
@@ -2324,13 +2324,18 @@ wpa_driver_nl80211_finish_drv_init(struc
}
@ -22,7 +22,7 @@
return send_and_recv_msgs(drv, msg, NULL, NULL);
}
@@ -2380,7 +2385,7 @@ static void wpa_driver_nl80211_deinit(st
@@ -2381,7 +2386,7 @@ static void wpa_driver_nl80211_deinit(st
nl80211_remove_monitor_interface(drv);
if (is_ap_interface(drv->nlmode))
@ -31,7 +31,7 @@
if (drv->eapol_sock >= 0) {
eloop_unregister_read_sock(drv->eapol_sock);
@@ -4232,8 +4237,7 @@ static void nl80211_teardown_ap(struct i
@@ -4233,8 +4238,7 @@ static void nl80211_teardown_ap(struct i
nl80211_remove_monitor_interface(drv);
else
nl80211_mgmt_unsubscribe(bss, "AP teardown");
@ -41,7 +41,7 @@
}
@@ -6164,8 +6168,6 @@ static int wpa_driver_nl80211_if_remove(
@@ -6165,8 +6169,6 @@ static int wpa_driver_nl80211_if_remove(
} else {
wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context");
nl80211_teardown_ap(bss);
@ -50,7 +50,7 @@
nl80211_destroy_bss(bss);
if (!bss->added_if)
i802_set_iface_flags(bss, 0);
@@ -6527,8 +6529,7 @@ static int wpa_driver_nl80211_deinit_ap(
@@ -6528,8 +6530,7 @@ static int wpa_driver_nl80211_deinit_ap(
struct wpa_driver_nl80211_data *drv = bss->drv;
if (!is_ap_interface(drv->nlmode))
return -1;
@ -60,7 +60,7 @@
/*
* If the P2P GO interface was dynamically added, then it is
@@ -6547,8 +6548,7 @@ static int wpa_driver_nl80211_stop_ap(vo
@@ -6548,8 +6549,7 @@ static int wpa_driver_nl80211_stop_ap(vo
struct wpa_driver_nl80211_data *drv = bss->drv;
if (!is_ap_interface(drv->nlmode))
return -1;

View File

@ -10,7 +10,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -4491,7 +4491,7 @@ static int wpa_driver_nl80211_ibss(struc
@@ -4492,7 +4492,7 @@ static int wpa_driver_nl80211_ibss(struc
struct wpa_driver_associate_params *params)
{
struct nl_msg *msg;
@ -19,7 +19,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
int count = 0;
wpa_printf(MSG_DEBUG, "nl80211: Join IBSS (ifindex=%d)", drv->ifindex);
@@ -4518,6 +4518,37 @@ retry:
@@ -4519,6 +4519,37 @@ retry:
nl80211_put_beacon_int(msg, params->beacon_int))
goto fail;

View File

@ -27,7 +27,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>
* bssid_hint - BSSID of a proposed AP
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -4549,6 +4549,22 @@ retry:
@@ -4550,6 +4550,22 @@ retry:
nla_put_u32(msg, NL80211_ATTR_MCAST_RATE, params->mcast_rate);
}