Added a separate ctx pointer for wpa_msg() calls in WPA supp
[wpasupplicant] / wpa_supplicant / ctrl_iface.c
index 2b737bc..7bb871a 100644 (file)
@@ -29,6 +29,7 @@
 #include "ieee802_11_defs.h"
 #include "wps_supplicant.h"
 #include "wps/wps.h"
+#include "ibss_rsn.h"
 
 static int wpa_supplicant_global_iface_list(struct wpa_global *global,
                                            char *buf, int len);
@@ -227,6 +228,26 @@ static int wpa_supplicant_ctrl_iface_wps_reg(struct wpa_supplicant *wpa_s,
 #endif /* CONFIG_WPS */
 
 
+#ifdef CONFIG_IBSS_RSN
+static int wpa_supplicant_ctrl_iface_ibss_rsn(
+       struct wpa_supplicant *wpa_s, char *addr)
+{
+       u8 peer[ETH_ALEN];
+
+       if (hwaddr_aton(addr, peer)) {
+               wpa_printf(MSG_DEBUG, "CTRL_IFACE IBSS_RSN: invalid "
+                          "address '%s'", peer);
+               return -1;
+       }
+
+       wpa_printf(MSG_DEBUG, "CTRL_IFACE IBSS_RSN " MACSTR,
+                  MAC2STR(peer));
+
+       return ibss_rsn_start(wpa_s->ibss_rsn, peer);
+}
+#endif /* CONFIG_IBSS_RSN */
+
+
 static int wpa_supplicant_ctrl_iface_ctrl_rsp(struct wpa_supplicant *wpa_s,
                                              char *rsp)
 {
@@ -1517,7 +1538,8 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
                reply_len = wpa_supplicant_ctrl_iface_status(
                        wpa_s, buf + 6, reply, reply_size);
        } else if (os_strcmp(buf, "PMKSA") == 0) {
-               reply_len = pmksa_cache_list(wpa_s->wpa, reply, reply_size);
+               reply_len = wpa_sm_pmksa_cache_list(wpa_s->wpa, reply,
+                                                   reply_size);
        } else if (os_strncmp(buf, "SET ", 4) == 0) {
                if (wpa_supplicant_ctrl_iface_set(wpa_s, buf + 4))
                        reply_len = -1;
@@ -1565,6 +1587,11 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
                if (wpa_supplicant_ctrl_iface_wps_reg(wpa_s, buf + 8))
                        reply_len = -1;
 #endif /* CONFIG_WPS */
+#ifdef CONFIG_IBSS_RSN
+       } else if (os_strncmp(buf, "IBSS_RSN ", 9) == 0) {
+               if (wpa_supplicant_ctrl_iface_ibss_rsn(wpa_s, buf + 9))
+                       reply_len = -1;
+#endif /* CONFIG_IBSS_RSN */
        } else if (os_strncmp(buf, WPA_CTRL_RSP, os_strlen(WPA_CTRL_RSP)) == 0)
        {
                if (wpa_supplicant_ctrl_iface_ctrl_rsp(