wpa_supplicant: Support dynamic update of wowlan_triggers
Previously, wowlan_triggers were updated in kernel only during startup. Also update it whenever it is set from the control interface. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
53d7f351f4
commit
3c7863f812
3 changed files with 12 additions and 1 deletions
|
@ -4550,7 +4550,7 @@ static const struct global_parse_data global_fields[] = {
|
||||||
{ INT(sched_scan_start_delay), 0 },
|
{ INT(sched_scan_start_delay), 0 },
|
||||||
{ INT(tdls_external_control), 0},
|
{ INT(tdls_external_control), 0},
|
||||||
{ STR(osu_dir), 0 },
|
{ STR(osu_dir), 0 },
|
||||||
{ STR(wowlan_triggers), 0 },
|
{ STR(wowlan_triggers), CFG_CHANGED_WOWLAN_TRIGGERS },
|
||||||
{ INT(p2p_search_delay), 0},
|
{ INT(p2p_search_delay), 0},
|
||||||
{ INT(mac_addr), 0 },
|
{ INT(mac_addr), 0 },
|
||||||
{ INT(rand_addr_lifetime), 0 },
|
{ INT(rand_addr_lifetime), 0 },
|
||||||
|
|
|
@ -336,6 +336,7 @@ struct wpa_cred {
|
||||||
#define CFG_CHANGED_NFC_PASSWORD_TOKEN BIT(15)
|
#define CFG_CHANGED_NFC_PASSWORD_TOKEN BIT(15)
|
||||||
#define CFG_CHANGED_P2P_PASSPHRASE_LEN BIT(16)
|
#define CFG_CHANGED_P2P_PASSPHRASE_LEN BIT(16)
|
||||||
#define CFG_CHANGED_SCHED_SCAN_PLANS BIT(17)
|
#define CFG_CHANGED_SCHED_SCAN_PLANS BIT(17)
|
||||||
|
#define CFG_CHANGED_WOWLAN_TRIGGERS BIT(18)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wpa_config - wpa_supplicant configuration data
|
* struct wpa_config - wpa_supplicant configuration data
|
||||||
|
|
|
@ -6018,6 +6018,16 @@ void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s)
|
||||||
if (wpa_s->conf->changed_parameters & CFG_CHANGED_SCHED_SCAN_PLANS)
|
if (wpa_s->conf->changed_parameters & CFG_CHANGED_SCHED_SCAN_PLANS)
|
||||||
wpas_sched_scan_plans_set(wpa_s, wpa_s->conf->sched_scan_plans);
|
wpas_sched_scan_plans_set(wpa_s, wpa_s->conf->sched_scan_plans);
|
||||||
|
|
||||||
|
if (wpa_s->conf->changed_parameters & CFG_CHANGED_WOWLAN_TRIGGERS) {
|
||||||
|
struct wpa_driver_capa capa;
|
||||||
|
int res = wpa_drv_get_capa(wpa_s, &capa);
|
||||||
|
|
||||||
|
if (res == 0 && wpas_set_wowlan_triggers(wpa_s, &capa) < 0)
|
||||||
|
wpa_printf(MSG_ERROR,
|
||||||
|
"Failed to update wowlan_triggers to '%s'",
|
||||||
|
wpa_s->conf->wowlan_triggers);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_WPS
|
#ifdef CONFIG_WPS
|
||||||
wpas_wps_update_config(wpa_s);
|
wpas_wps_update_config(wpa_s);
|
||||||
#endif /* CONFIG_WPS */
|
#endif /* CONFIG_WPS */
|
||||||
|
|
Loading…
Reference in a new issue