Interworking: Add ctrl_iface events on cred block modifications
Following events are now sent to ctrl_iface monitors to indicate if credential blocks have been added, modified, or removed: CRED-ADDED <id> CRED-MODIFIED <id> <field> CRED-REMOVE <id> Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
0f3d4b504d
commit
1619e9d512
2 changed files with 21 additions and 1 deletions
|
@ -164,6 +164,13 @@ extern "C" {
|
||||||
#define INTERWORKING_ALREADY_CONNECTED "INTERWORKING-ALREADY-CONNECTED "
|
#define INTERWORKING_ALREADY_CONNECTED "INTERWORKING-ALREADY-CONNECTED "
|
||||||
#define INTERWORKING_SELECTED "INTERWORKING-SELECTED "
|
#define INTERWORKING_SELECTED "INTERWORKING-SELECTED "
|
||||||
|
|
||||||
|
/* Credential block added; parameters: <id> */
|
||||||
|
#define CRED_ADDED "CRED-ADDED "
|
||||||
|
/* Credential block modified; parameters: <id> <field> */
|
||||||
|
#define CRED_MODIFIED "CRED-MODIFIED "
|
||||||
|
/* Credential block removed; parameters: <id> */
|
||||||
|
#define CRED_REMOVED "CRED-REMOVED "
|
||||||
|
|
||||||
#define GAS_RESPONSE_INFO "GAS-RESPONSE-INFO "
|
#define GAS_RESPONSE_INFO "GAS-RESPONSE-INFO "
|
||||||
/* parameters: <addr> <dialog_token> <freq> */
|
/* parameters: <addr> <dialog_token> <freq> */
|
||||||
#define GAS_QUERY_START "GAS-QUERY-START "
|
#define GAS_QUERY_START "GAS-QUERY-START "
|
||||||
|
|
|
@ -2660,6 +2660,8 @@ static int wpa_supplicant_ctrl_iface_add_cred(struct wpa_supplicant *wpa_s,
|
||||||
if (cred == NULL)
|
if (cred == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
wpa_msg(wpa_s, MSG_INFO, CRED_ADDED "%d", cred->id);
|
||||||
|
|
||||||
ret = os_snprintf(buf, buflen, "%d\n", cred->id);
|
ret = os_snprintf(buf, buflen, "%d\n", cred->id);
|
||||||
if (ret < 0 || (size_t) ret >= buflen)
|
if (ret < 0 || (size_t) ret >= buflen)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -2672,12 +2674,21 @@ static int wpas_ctrl_remove_cred(struct wpa_supplicant *wpa_s,
|
||||||
{
|
{
|
||||||
struct wpa_ssid *ssid;
|
struct wpa_ssid *ssid;
|
||||||
char str[20];
|
char str[20];
|
||||||
|
int id;
|
||||||
|
|
||||||
if (cred == NULL || wpa_config_remove_cred(wpa_s->conf, cred->id) < 0) {
|
if (cred == NULL) {
|
||||||
wpa_printf(MSG_DEBUG, "CTRL_IFACE: Could not find cred");
|
wpa_printf(MSG_DEBUG, "CTRL_IFACE: Could not find cred");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
id = cred->id;
|
||||||
|
if (wpa_config_remove_cred(wpa_s->conf, id) < 0) {
|
||||||
|
wpa_printf(MSG_DEBUG, "CTRL_IFACE: Could not find cred");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
wpa_msg(wpa_s, MSG_INFO, CRED_REMOVED "%d", id);
|
||||||
|
|
||||||
/* Remove any network entry created based on the removed credential */
|
/* Remove any network entry created based on the removed credential */
|
||||||
ssid = wpa_s->conf->ssid;
|
ssid = wpa_s->conf->ssid;
|
||||||
while (ssid) {
|
while (ssid) {
|
||||||
|
@ -2794,6 +2805,8 @@ static int wpa_supplicant_ctrl_iface_set_cred(struct wpa_supplicant *wpa_s,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wpa_msg(wpa_s, MSG_INFO, CRED_MODIFIED "%d %s", cred->id, name);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue