]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/ctrl_iface.c
wpa_supplicant AP: Allows passphrase to be fetched
[thirdparty/hostap.git] / wpa_supplicant / ctrl_iface.c
index 442ac8cca955f04cddc6495a61776b2d90abad0a..443b693dc81a910d730e7f98474ff926f5e4df1c 100644 (file)
@@ -874,9 +874,10 @@ static int wpa_supplicant_ctrl_iface_status(struct wpa_supplicant *wpa_s,
                                            char *buf, size_t buflen)
 {
        char *pos, *end, tmp[30];
-       int res, verbose, ret;
+       int res, verbose, wps, ret;
 
        verbose = os_strcmp(params, "-VERBOSE") == 0;
+       wps = os_strcmp(params, "-WPS") == 0;
        pos = buf;
        end = buf + buflen;
        if (wpa_s->wpa_state >= WPA_ASSOCIATED) {
@@ -905,6 +906,17 @@ static int wpa_supplicant_ctrl_iface_status(struct wpa_supplicant *wpa_s,
                                return pos - buf;
                        pos += ret;
 
+                       if (wps && ssid->passphrase &&
+                           wpa_key_mgmt_wpa_psk(ssid->key_mgmt) &&
+                           (ssid->mode == WPAS_MODE_AP ||
+                            ssid->mode == WPAS_MODE_P2P_GO)) {
+                               ret = os_snprintf(pos, end - pos,
+                                                 "passphrase=%s\n",
+                                                 ssid->passphrase);
+                               if (ret < 0 || ret >= end - pos)
+                                       return pos - buf;
+                               pos += ret;
+                       }
                        if (ssid->id_str) {
                                ret = os_snprintf(pos, end - pos,
                                                  "id_str=%s\n",