|
@@ -2340,7 +2340,7 @@ static int wpa_supplicant_ctrl_iface_remove_cred(struct wpa_supplicant *wpa_s,
|
|
|
int id;
|
|
|
struct wpa_cred *cred, *prev;
|
|
|
|
|
|
- /* cmd: "<cred id>" or "all" */
|
|
|
+ /* cmd: "<cred id>", "all", or "sp_fqdn=<FQDN>" */
|
|
|
if (os_strcmp(cmd, "all") == 0) {
|
|
|
wpa_printf(MSG_DEBUG, "CTRL_IFACE: REMOVE_CRED all");
|
|
|
cred = wpa_s->conf->cred;
|
|
@@ -2352,6 +2352,20 @@ static int wpa_supplicant_ctrl_iface_remove_cred(struct wpa_supplicant *wpa_s,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+ if (os_strncmp(cmd, "sp_fqdn=", 8) == 0) {
|
|
|
+ wpa_printf(MSG_DEBUG, "CTRL_IFACE: REMOVE_CRED SP FQDN '%s'",
|
|
|
+ cmd + 8);
|
|
|
+ cred = wpa_s->conf->cred;
|
|
|
+ while (cred) {
|
|
|
+ prev = cred;
|
|
|
+ cred = cred->next;
|
|
|
+ if (prev->domain &&
|
|
|
+ os_strcmp(prev->domain, cmd + 8) == 0)
|
|
|
+ wpas_ctrl_remove_cred(wpa_s, prev);
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
id = atoi(cmd);
|
|
|
wpa_printf(MSG_DEBUG, "CTRL_IFACE: REMOVE_CRED id=%d", id);
|
|
|
|