|
|
@@ -34,7 +34,7 @@ as adding/removing interfaces.
|
|
|
ifdef CONFIG_CODE_COVERAGE
|
|
|
--- a/hostapd/ctrl_iface.c
|
|
|
+++ b/hostapd/ctrl_iface.c
|
|
|
-@@ -6004,6 +6004,7 @@ try_again:
|
|
|
+@@ -6037,6 +6037,7 @@ try_again:
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
@@ -42,7 +42,7 @@ as adding/removing interfaces.
|
|
|
wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb);
|
|
|
|
|
|
return 0;
|
|
|
-@@ -6105,6 +6106,7 @@ fail:
|
|
|
+@@ -6138,6 +6139,7 @@ fail:
|
|
|
os_free(fname);
|
|
|
|
|
|
interface->global_ctrl_sock = s;
|
|
|
@@ -148,7 +148,7 @@ as adding/removing interfaces.
|
|
|
if (conf->wmm_enabled < 0)
|
|
|
conf->wmm_enabled = hapd->iconf->ieee80211n |
|
|
|
hapd->iconf->ieee80211ax;
|
|
|
-@@ -2508,7 +2514,7 @@ static int hostapd_owe_iface_iter2(struc
|
|
|
+@@ -2516,7 +2522,7 @@ static int hostapd_owe_iface_iter2(struc
|
|
|
#endif /* CONFIG_OWE */
|
|
|
|
|
|
|
|
|
@@ -157,7 +157,7 @@ as adding/removing interfaces.
|
|
|
{
|
|
|
#ifdef CONFIG_OWE
|
|
|
/* Check whether the enabled BSS can complete OWE transition mode
|
|
|
-@@ -2976,7 +2982,7 @@ hostapd_alloc_bss_data(struct hostapd_if
|
|
|
+@@ -2986,7 +2992,7 @@ hostapd_alloc_bss_data(struct hostapd_if
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -166,7 +166,7 @@ as adding/removing interfaces.
|
|
|
{
|
|
|
if (!hapd)
|
|
|
return;
|
|
|
-@@ -4051,7 +4057,8 @@ int hostapd_remove_iface(struct hapd_int
|
|
|
+@@ -4070,7 +4076,8 @@ int hostapd_remove_iface(struct hapd_int
|
|
|
hapd_iface = interfaces->iface[i];
|
|
|
if (hapd_iface == NULL)
|
|
|
return -1;
|
|
|
@@ -232,7 +232,7 @@ as adding/removing interfaces.
|
|
|
void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap);
|
|
|
--- a/src/drivers/driver.h
|
|
|
+++ b/src/drivers/driver.h
|
|
|
-@@ -4036,6 +4036,25 @@ struct wpa_driver_ops {
|
|
|
+@@ -4067,6 +4067,25 @@ struct wpa_driver_ops {
|
|
|
const char *ifname);
|
|
|
|
|
|
/**
|
|
|
@@ -258,7 +258,7 @@ as adding/removing interfaces.
|
|
|
* set_sta_vlan - Bind a station into a specific interface (AP only)
|
|
|
* @priv: Private driver interface data
|
|
|
* @ifname: Interface (main or virtual BSS or VLAN)
|
|
|
-@@ -6851,6 +6870,7 @@ union wpa_event_data {
|
|
|
+@@ -6896,6 +6915,7 @@ union wpa_event_data {
|
|
|
|
|
|
/**
|
|
|
* struct ch_switch
|
|
|
@@ -266,7 +266,7 @@ as adding/removing interfaces.
|
|
|
* @freq: Frequency of new channel in MHz
|
|
|
* @ht_enabled: Whether this is an HT channel
|
|
|
* @ch_offset: Secondary channel offset
|
|
|
-@@ -6861,6 +6881,7 @@ union wpa_event_data {
|
|
|
+@@ -6906,6 +6926,7 @@ union wpa_event_data {
|
|
|
* @punct_bitmap: Puncturing bitmap
|
|
|
*/
|
|
|
struct ch_switch {
|
|
|
@@ -293,7 +293,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
static struct nl_sock * nl_create_handle(struct nl_cb *cb, const char *dbg)
|
|
|
{
|
|
|
-@@ -437,6 +447,11 @@ static int no_seq_check(struct nl_msg *m
|
|
|
+@@ -435,6 +445,11 @@ static int no_seq_check(struct nl_msg *m
|
|
|
return NL_OK;
|
|
|
}
|
|
|
|
|
|
@@ -305,7 +305,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
static void nl80211_nlmsg_clear(struct nl_msg *msg)
|
|
|
{
|
|
|
-@@ -511,6 +526,8 @@ int send_and_recv_glb(struct nl80211_glo
|
|
|
+@@ -509,6 +524,8 @@ int send_and_recv_glb(struct nl80211_glo
|
|
|
if (!msg)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
@@ -314,7 +314,7 @@ as adding/removing interfaces.
|
|
|
err.err = -ENOMEM;
|
|
|
|
|
|
s_nl_cb = nl_socket_get_cb(nl_handle);
|
|
|
-@@ -552,6 +569,7 @@ int send_and_recv_glb(struct nl80211_glo
|
|
|
+@@ -550,6 +567,7 @@ int send_and_recv_glb(struct nl80211_glo
|
|
|
err.err_info = err_info;
|
|
|
err.drv = drv;
|
|
|
|
|
|
@@ -322,7 +322,7 @@ as adding/removing interfaces.
|
|
|
nl_cb_err(cb, NL_CB_CUSTOM, error_handler, &err);
|
|
|
nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, finish_handler, &err.err);
|
|
|
if (ack_handler_custom) {
|
|
|
-@@ -973,6 +991,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs
|
|
|
+@@ -971,6 +989,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs
|
|
|
os_free(w);
|
|
|
return NULL;
|
|
|
}
|
|
|
@@ -330,7 +330,7 @@ as adding/removing interfaces.
|
|
|
nl_cb_set(w->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM,
|
|
|
no_seq_check, NULL);
|
|
|
nl_cb_set(w->nl_cb, NL_CB_VALID, NL_CB_CUSTOM,
|
|
|
-@@ -1388,7 +1407,7 @@ static void wpa_driver_nl80211_event_rtm
|
|
|
+@@ -1399,7 +1418,7 @@ static void wpa_driver_nl80211_event_rtm
|
|
|
}
|
|
|
wpa_printf(MSG_DEBUG, "nl80211: Interface down (%s/%s)",
|
|
|
namebuf, ifname);
|
|
|
@@ -339,7 +339,7 @@ as adding/removing interfaces.
|
|
|
wpa_printf(MSG_DEBUG,
|
|
|
"nl80211: Not the main interface (%s) - do not indicate interface down",
|
|
|
drv->first_bss->ifname);
|
|
|
-@@ -1424,7 +1443,7 @@ static void wpa_driver_nl80211_event_rtm
|
|
|
+@@ -1435,7 +1454,7 @@ static void wpa_driver_nl80211_event_rtm
|
|
|
}
|
|
|
wpa_printf(MSG_DEBUG, "nl80211: Interface up (%s/%s)",
|
|
|
namebuf, ifname);
|
|
|
@@ -348,7 +348,7 @@ as adding/removing interfaces.
|
|
|
wpa_printf(MSG_DEBUG,
|
|
|
"nl80211: Not the main interface (%s) - do not indicate interface up",
|
|
|
drv->first_bss->ifname);
|
|
|
-@@ -2070,6 +2089,7 @@ static int wpa_driver_nl80211_init_nl_gl
|
|
|
+@@ -2128,6 +2147,7 @@ static int wpa_driver_nl80211_init_nl_gl
|
|
|
genl_family_put(family);
|
|
|
nl_cache_free(cache);
|
|
|
|
|
|
@@ -356,7 +356,7 @@ as adding/removing interfaces.
|
|
|
nl_cb_set(global->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM,
|
|
|
no_seq_check, NULL);
|
|
|
nl_cb_set(global->nl_cb, NL_CB_VALID, NL_CB_CUSTOM,
|
|
|
-@@ -2240,6 +2260,7 @@ static int nl80211_init_bss(struct i802_
|
|
|
+@@ -2298,6 +2318,7 @@ static int nl80211_init_bss(struct i802_
|
|
|
if (!bss->nl_cb)
|
|
|
return -1;
|
|
|
|
|
|
@@ -364,7 +364,7 @@ as adding/removing interfaces.
|
|
|
nl_cb_set(bss->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM,
|
|
|
no_seq_check, NULL);
|
|
|
nl_cb_set(bss->nl_cb, NL_CB_VALID, NL_CB_CUSTOM,
|
|
|
-@@ -8785,6 +8806,7 @@ static void *i802_init(struct hostapd_da
|
|
|
+@@ -8849,6 +8870,7 @@ static void *i802_init(struct hostapd_da
|
|
|
char master_ifname[IFNAMSIZ];
|
|
|
int ifindex, br_ifindex = 0;
|
|
|
int br_added = 0;
|
|
|
@@ -372,7 +372,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
bss = wpa_driver_nl80211_drv_init(hapd, params->ifname,
|
|
|
params->global_priv, 1,
|
|
|
-@@ -8845,21 +8867,17 @@ static void *i802_init(struct hostapd_da
|
|
|
+@@ -8909,21 +8931,17 @@ static void *i802_init(struct hostapd_da
|
|
|
(params->num_bridge == 0 || !params->bridge[0]))
|
|
|
add_ifidx(drv, br_ifindex, drv->ifindex);
|
|
|
|
|
|
@@ -404,7 +404,7 @@ as adding/removing interfaces.
|
|
|
}
|
|
|
|
|
|
if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) {
|
|
|
-@@ -9236,6 +9254,50 @@ static int wpa_driver_nl80211_if_remove(
|
|
|
+@@ -9302,6 +9320,50 @@ static int wpa_driver_nl80211_if_remove(
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
@@ -455,7 +455,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
static int cookie_handler(struct nl_msg *msg, void *arg)
|
|
|
{
|
|
|
-@@ -11114,6 +11176,37 @@ static bool nl80211_is_drv_shared(void *
|
|
|
+@@ -11180,6 +11242,37 @@ static bool nl80211_is_drv_shared(void *
|
|
|
#endif /* CONFIG_IEEE80211BE */
|
|
|
|
|
|
|
|
|
@@ -493,7 +493,7 @@ as adding/removing interfaces.
|
|
|
static int driver_nl80211_send_mlme(void *priv, const u8 *data,
|
|
|
size_t data_len, int noack,
|
|
|
unsigned int freq,
|
|
|
-@@ -14839,6 +14932,8 @@ const struct wpa_driver_ops wpa_driver_n
|
|
|
+@@ -14999,6 +15092,8 @@ const struct wpa_driver_ops wpa_driver_n
|
|
|
.set_acl = wpa_driver_nl80211_set_acl,
|
|
|
.if_add = wpa_driver_nl80211_if_add,
|
|
|
.if_remove = driver_nl80211_if_remove,
|
|
|
@@ -504,7 +504,7 @@ as adding/removing interfaces.
|
|
|
.sta_add = wpa_driver_nl80211_sta_add,
|
|
|
--- a/src/drivers/driver_nl80211_event.c
|
|
|
+++ b/src/drivers/driver_nl80211_event.c
|
|
|
-@@ -1213,6 +1213,7 @@ static void mlme_event_ch_switch(struct
|
|
|
+@@ -1254,6 +1254,7 @@ static void mlme_event_ch_switch(struct
|
|
|
struct nlattr *bw, struct nlattr *cf1,
|
|
|
struct nlattr *cf2,
|
|
|
struct nlattr *punct_bitmap,
|
|
|
@@ -512,7 +512,7 @@ as adding/removing interfaces.
|
|
|
int finished)
|
|
|
{
|
|
|
struct i802_bss *bss;
|
|
|
-@@ -1278,6 +1279,8 @@ static void mlme_event_ch_switch(struct
|
|
|
+@@ -1319,6 +1320,8 @@ static void mlme_event_ch_switch(struct
|
|
|
data.ch_switch.cf1 = nla_get_u32(cf1);
|
|
|
if (cf2)
|
|
|
data.ch_switch.cf2 = nla_get_u32(cf2);
|
|
|
@@ -521,7 +521,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
if (link) {
|
|
|
data.ch_switch.link_id = nla_get_u8(link);
|
|
|
-@@ -4129,6 +4132,7 @@ static void do_process_drv_event(struct
|
|
|
+@@ -4279,6 +4282,7 @@ static void do_process_drv_event(struct
|
|
|
tb[NL80211_ATTR_CENTER_FREQ1],
|
|
|
tb[NL80211_ATTR_CENTER_FREQ2],
|
|
|
tb[NL80211_ATTR_PUNCT_BITMAP],
|
|
|
@@ -529,7 +529,7 @@ as adding/removing interfaces.
|
|
|
0);
|
|
|
break;
|
|
|
case NL80211_CMD_CH_SWITCH_NOTIFY:
|
|
|
-@@ -4141,6 +4145,7 @@ static void do_process_drv_event(struct
|
|
|
+@@ -4291,6 +4295,7 @@ static void do_process_drv_event(struct
|
|
|
tb[NL80211_ATTR_CENTER_FREQ1],
|
|
|
tb[NL80211_ATTR_CENTER_FREQ2],
|
|
|
tb[NL80211_ATTR_PUNCT_BITMAP],
|
|
|
@@ -622,7 +622,7 @@ as adding/removing interfaces.
|
|
|
CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
|
|
|
--- a/wpa_supplicant/events.c
|
|
|
+++ b/wpa_supplicant/events.c
|
|
|
-@@ -6211,6 +6211,7 @@ void supplicant_event(void *ctx, enum wp
|
|
|
+@@ -6291,6 +6291,7 @@ void supplicant_event(void *ctx, enum wp
|
|
|
event_to_string(event), event);
|
|
|
#endif /* CONFIG_NO_STDOUT_DEBUG */
|
|
|
|
|
|
@@ -632,15 +632,15 @@ as adding/removing interfaces.
|
|
|
#ifdef CONFIG_FST
|
|
|
--- a/wpa_supplicant/wpa_supplicant.c
|
|
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
|
|
-@@ -1271,6 +1271,7 @@ void wpa_supplicant_set_state(struct wpa
|
|
|
+@@ -1276,6 +1276,7 @@ void wpa_supplicant_set_state(struct wpa
|
|
|
sme_sched_obss_scan(wpa_s, 0);
|
|
|
}
|
|
|
wpa_s->wpa_state = state;
|
|
|
+ wpas_ucode_update_state(wpa_s);
|
|
|
|
|
|
- #ifdef CONFIG_BGSCAN
|
|
|
- if (state == WPA_COMPLETED && wpa_s->current_ssid != wpa_s->bgscan_ssid)
|
|
|
-@@ -8234,6 +8235,7 @@ struct wpa_supplicant * wpa_supplicant_a
|
|
|
+ #ifndef CONFIG_NO_ROBUST_AV
|
|
|
+ if (state == WPA_COMPLETED && dl_list_len(&wpa_s->active_scs_ids) &&
|
|
|
+@@ -8262,6 +8263,7 @@ struct wpa_supplicant * wpa_supplicant_a
|
|
|
#endif /* CONFIG_P2P */
|
|
|
|
|
|
wpas_ubus_add_bss(wpa_s);
|
|
|
@@ -648,7 +648,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
return wpa_s;
|
|
|
}
|
|
|
-@@ -8261,6 +8263,7 @@ int wpa_supplicant_remove_iface(struct w
|
|
|
+@@ -8289,6 +8291,7 @@ int wpa_supplicant_remove_iface(struct w
|
|
|
struct wpa_supplicant *parent = wpa_s->parent;
|
|
|
#endif /* CONFIG_MESH */
|
|
|
|
|
|
@@ -656,7 +656,7 @@ as adding/removing interfaces.
|
|
|
wpas_ubus_free_bss(wpa_s);
|
|
|
|
|
|
/* Remove interface from the global list of interfaces */
|
|
|
-@@ -8571,6 +8574,7 @@ struct wpa_global * wpa_supplicant_init(
|
|
|
+@@ -8599,6 +8602,7 @@ struct wpa_global * wpa_supplicant_init(
|
|
|
|
|
|
eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0,
|
|
|
wpas_periodic, global, NULL);
|
|
|
@@ -664,7 +664,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
return global;
|
|
|
}
|
|
|
-@@ -8609,12 +8613,8 @@ int wpa_supplicant_run(struct wpa_global
|
|
|
+@@ -8637,12 +8641,8 @@ int wpa_supplicant_run(struct wpa_global
|
|
|
eloop_register_signal_terminate(wpa_supplicant_terminate, global);
|
|
|
eloop_register_signal_reconfig(wpa_supplicant_reconfig, global);
|
|
|
|
|
|
@@ -677,7 +677,7 @@ as adding/removing interfaces.
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-@@ -8647,6 +8647,8 @@ void wpa_supplicant_deinit(struct wpa_gl
|
|
|
+@@ -8675,6 +8675,8 @@ void wpa_supplicant_deinit(struct wpa_gl
|
|
|
|
|
|
wpas_notify_supplicant_deinitialized(global);
|
|
|
|
|
|
@@ -696,7 +696,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
extern const char *const wpa_supplicant_version;
|
|
|
extern const char *const wpa_supplicant_license;
|
|
|
-@@ -700,6 +701,7 @@ struct wpa_supplicant {
|
|
|
+@@ -701,6 +702,7 @@ struct wpa_supplicant {
|
|
|
unsigned char perm_addr[ETH_ALEN];
|
|
|
char ifname[100];
|
|
|
struct wpas_ubus_bss ubus;
|
|
|
@@ -758,7 +758,7 @@ as adding/removing interfaces.
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-@@ -3429,6 +3452,12 @@ static void handle_auth(struct hostapd_d
|
|
|
+@@ -3446,6 +3469,12 @@ static void handle_auth(struct hostapd_d
|
|
|
goto fail;
|
|
|
}
|
|
|
|
|
|
@@ -773,7 +773,7 @@ as adding/removing interfaces.
|
|
|
|
|
|
--- a/src/ap/sta_info.c
|
|
|
+++ b/src/ap/sta_info.c
|
|
|
-@@ -476,6 +476,11 @@ void ap_free_sta(struct hostapd_data *ha
|
|
|
+@@ -477,6 +477,11 @@ void ap_free_sta(struct hostapd_data *ha
|
|
|
forced_memzero(sta->last_tk, WPA_TK_MAX_LEN);
|
|
|
#endif /* CONFIG_TESTING_OPTIONS */
|
|
|
|
|
|
@@ -785,7 +785,7 @@ as adding/removing interfaces.
|
|
|
os_free(sta);
|
|
|
}
|
|
|
|
|
|
-@@ -1575,6 +1580,8 @@ void ap_sta_set_authorized_event(struct
|
|
|
+@@ -1576,6 +1581,8 @@ void ap_sta_set_authorized_event(struct
|
|
|
#endif /* CONFIG_P2P */
|
|
|
const u8 *ip_ptr = NULL;
|
|
|
|