diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index ea903d592..7988ceca4 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -3168,6 +3168,18 @@ static int wpa_driver_nl80211_set_acl(void *priv, } +static int nl80211_put_beacon_int(struct nl_msg *msg, int beacon_int) +{ + if (beacon_int > 0) { + wpa_printf(MSG_DEBUG, " * beacon_int=%d", beacon_int); + return nla_put_u32(msg, NL80211_ATTR_BEACON_INTERVAL, + beacon_int); + } + + return 0; +} + + static int wpa_driver_nl80211_set_ap(void *priv, struct wpa_driver_ap_params *params) { @@ -3203,8 +3215,7 @@ static int wpa_driver_nl80211_set_ap(void *priv, params->head) || nla_put(msg, NL80211_ATTR_BEACON_TAIL, params->tail_len, params->tail) || - nla_put_u32(msg, NL80211_ATTR_BEACON_INTERVAL, - params->beacon_int) || + nl80211_put_beacon_int(msg, params->beacon_int) || nla_put_u32(msg, NL80211_ATTR_DTIM_PERIOD, params->dtim_period) || nla_put(msg, NL80211_ATTR_SSID, params->ssid_len, params->ssid)) goto fail; @@ -4230,16 +4241,10 @@ retry: os_memcpy(drv->ssid, params->ssid, params->ssid_len); drv->ssid_len = params->ssid_len; - if (nl80211_put_freq_params(msg, ¶ms->freq) < 0) + if (nl80211_put_freq_params(msg, ¶ms->freq) < 0 || + nl80211_put_beacon_int(msg, params->beacon_int)) goto fail; - if (params->beacon_int > 0) { - wpa_printf(MSG_DEBUG, " * beacon_int=%d", params->beacon_int); - if (nla_put_u32(msg, NL80211_ATTR_BEACON_INTERVAL, - params->beacon_int)) - goto fail; - } - ret = nl80211_set_conn_keys(params, msg); if (ret) goto fail; @@ -7817,12 +7822,8 @@ wpa_driver_nl80211_join_mesh(void *priv, goto fail; } - if (params->beacon_int > 0) { - wpa_printf(MSG_DEBUG, " * beacon_int=%d", params->beacon_int); - if (nla_put_u32(msg, NL80211_ATTR_BEACON_INTERVAL, - params->beacon_int)) - goto fail; - } + if (nl80211_put_beacon_int(msg, params->beacon_int)) + goto fail; wpa_printf(MSG_DEBUG, " * flags=%08X", params->flags);