Update wpa_supplicant channel list on FLUSH
Try to make sure the driver channel list state is synchronized with wpa_supplicant whenever explicitly clearing state (e.g., between hwsim test cases). Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
d8dda601f0
commit
32bb47faa1
3 changed files with 13 additions and 6 deletions
|
@ -7957,6 +7957,8 @@ static void wpa_supplicant_ctrl_iface_flush(struct wpa_supplicant *wpa_s)
|
||||||
|
|
||||||
wpabuf_free(wpa_s->ric_ies);
|
wpabuf_free(wpa_s->ric_ies);
|
||||||
wpa_s->ric_ies = NULL;
|
wpa_s->ric_ies = NULL;
|
||||||
|
|
||||||
|
wpa_supplicant_update_channel_list(wpa_s, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3633,8 +3633,8 @@ static const char * reg_type_str(enum reg_type type)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void wpa_supplicant_update_channel_list(
|
void wpa_supplicant_update_channel_list(struct wpa_supplicant *wpa_s,
|
||||||
struct wpa_supplicant *wpa_s, struct channel_list_changed *info)
|
struct channel_list_changed *info)
|
||||||
{
|
{
|
||||||
struct wpa_supplicant *ifs;
|
struct wpa_supplicant *ifs;
|
||||||
u8 dfs_domain;
|
u8 dfs_domain;
|
||||||
|
@ -3648,10 +3648,13 @@ static void wpa_supplicant_update_channel_list(
|
||||||
for (ifs = wpa_s; ifs->parent && ifs != ifs->parent; ifs = ifs->parent)
|
for (ifs = wpa_s; ifs->parent && ifs != ifs->parent; ifs = ifs->parent)
|
||||||
;
|
;
|
||||||
|
|
||||||
wpa_msg(ifs, MSG_INFO, WPA_EVENT_REGDOM_CHANGE "init=%s type=%s%s%s",
|
if (info) {
|
||||||
|
wpa_msg(ifs, MSG_INFO,
|
||||||
|
WPA_EVENT_REGDOM_CHANGE "init=%s type=%s%s%s",
|
||||||
reg_init_str(info->initiator), reg_type_str(info->type),
|
reg_init_str(info->initiator), reg_type_str(info->type),
|
||||||
info->alpha2[0] ? " alpha2=" : "",
|
info->alpha2[0] ? " alpha2=" : "",
|
||||||
info->alpha2[0] ? info->alpha2 : "");
|
info->alpha2[0] ? info->alpha2 : "");
|
||||||
|
}
|
||||||
|
|
||||||
if (wpa_s->drv_priv == NULL)
|
if (wpa_s->drv_priv == NULL)
|
||||||
return; /* Ignore event during drv initialization */
|
return; /* Ignore event during drv initialization */
|
||||||
|
|
|
@ -1427,6 +1427,8 @@ int wpa_supplicant_fast_associate(struct wpa_supplicant *wpa_s);
|
||||||
struct wpa_bss * wpa_supplicant_pick_network(struct wpa_supplicant *wpa_s,
|
struct wpa_bss * wpa_supplicant_pick_network(struct wpa_supplicant *wpa_s,
|
||||||
struct wpa_ssid **selected_ssid);
|
struct wpa_ssid **selected_ssid);
|
||||||
int wpas_temp_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
|
int wpas_temp_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
|
||||||
|
void wpa_supplicant_update_channel_list(struct wpa_supplicant *wpa_s,
|
||||||
|
struct channel_list_changed *info);
|
||||||
|
|
||||||
/* eap_register.c */
|
/* eap_register.c */
|
||||||
int eap_register_methods(void);
|
int eap_register_methods(void);
|
||||||
|
|
Loading…
Reference in a new issue