mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-28 18:28:23 -05:00
mesh: Use WPA_DRIVER_MESH_CONF_FLAG_* as modification flag
Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
This commit is contained in:
parent
4ffb3f870d
commit
2bd6217173
@ -1119,11 +1119,14 @@ struct wpa_driver_ap_params {
|
|||||||
|
|
||||||
struct wpa_driver_mesh_bss_params {
|
struct wpa_driver_mesh_bss_params {
|
||||||
#define WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS 0x00000001
|
#define WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS 0x00000001
|
||||||
|
#define WPA_DRIVER_MESH_CONF_FLAG_PEER_LINK_TIMEOUT 0x00000002
|
||||||
|
#define WPA_DRIVER_MESH_CONF_FLAG_MAX_PEER_LINKS 0x00000004
|
||||||
/*
|
/*
|
||||||
* TODO: Other mesh configuration parameters would go here.
|
* TODO: Other mesh configuration parameters would go here.
|
||||||
* See NL80211_MESHCONF_* for all the mesh config parameters.
|
* See NL80211_MESHCONF_* for all the mesh config parameters.
|
||||||
*/
|
*/
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
|
int auto_plinks;
|
||||||
int peer_link_timeout;
|
int peer_link_timeout;
|
||||||
int max_peer_links;
|
int max_peer_links;
|
||||||
};
|
};
|
||||||
|
@ -8422,18 +8422,20 @@ static int nl80211_put_mesh_config(struct nl_msg *msg,
|
|||||||
if (!container)
|
if (!container)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (nla_put_u32(msg, NL80211_MESHCONF_AUTO_OPEN_PLINKS,
|
if (((params->flags & WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS) &&
|
||||||
!!(params->flags &
|
nla_put_u32(msg, NL80211_MESHCONF_AUTO_OPEN_PLINKS,
|
||||||
WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS)) ||
|
params->auto_plinks)) ||
|
||||||
|
((params->flags & WPA_DRIVER_MESH_CONF_FLAG_MAX_PEER_LINKS) &&
|
||||||
nla_put_u16(msg, NL80211_MESHCONF_MAX_PEER_LINKS,
|
nla_put_u16(msg, NL80211_MESHCONF_MAX_PEER_LINKS,
|
||||||
params->max_peer_links))
|
params->max_peer_links)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set NL80211_MESHCONF_PLINK_TIMEOUT even if user mpm is used because
|
* Set NL80211_MESHCONF_PLINK_TIMEOUT even if user mpm is used because
|
||||||
* the timer could disconnect stations even in that case.
|
* the timer could disconnect stations even in that case.
|
||||||
*/
|
*/
|
||||||
if (nla_put_u32(msg, NL80211_MESHCONF_PLINK_TIMEOUT,
|
if ((params->flags & WPA_DRIVER_MESH_CONF_FLAG_PEER_LINK_TIMEOUT) &&
|
||||||
|
nla_put_u32(msg, NL80211_MESHCONF_PLINK_TIMEOUT,
|
||||||
params->peer_link_timeout)) {
|
params->peer_link_timeout)) {
|
||||||
wpa_printf(MSG_ERROR, "nl80211: Failed to set PLINK_TIMEOUT");
|
wpa_printf(MSG_ERROR, "nl80211: Failed to set PLINK_TIMEOUT");
|
||||||
return -1;
|
return -1;
|
||||||
@ -8489,6 +8491,9 @@ static int nl80211_join_mesh(struct i802_bss *bss,
|
|||||||
goto fail;
|
goto fail;
|
||||||
nla_nest_end(msg, container);
|
nla_nest_end(msg, container);
|
||||||
|
|
||||||
|
params->conf.flags |= WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS;
|
||||||
|
params->conf.flags |= WPA_DRIVER_MESH_CONF_FLAG_PEER_LINK_TIMEOUT;
|
||||||
|
params->conf.flags |= WPA_DRIVER_MESH_CONF_FLAG_MAX_PEER_LINKS;
|
||||||
if (nl80211_put_mesh_config(msg, ¶ms->conf) < 0)
|
if (nl80211_put_mesh_config(msg, ¶ms->conf) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
@ -414,10 +414,10 @@ int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s,
|
|||||||
|
|
||||||
if (wpa_s->conf->user_mpm) {
|
if (wpa_s->conf->user_mpm) {
|
||||||
params.flags |= WPA_DRIVER_MESH_FLAG_USER_MPM;
|
params.flags |= WPA_DRIVER_MESH_FLAG_USER_MPM;
|
||||||
params.conf.flags &= ~WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS;
|
params.conf.auto_plinks = 0;
|
||||||
} else {
|
} else {
|
||||||
params.flags |= WPA_DRIVER_MESH_FLAG_DRIVER_MPM;
|
params.flags |= WPA_DRIVER_MESH_FLAG_DRIVER_MPM;
|
||||||
params.conf.flags |= WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS;
|
params.conf.auto_plinks = 1;
|
||||||
}
|
}
|
||||||
params.conf.peer_link_timeout = wpa_s->conf->mesh_max_inactivity;
|
params.conf.peer_link_timeout = wpa_s->conf->mesh_max_inactivity;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user