Enable wpa_msg() for hostapd
authorJouni Malinen <jouni.malinen@atheros.com>
Wed, 21 Jan 2009 09:45:56 +0000 (11:45 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 21 Jan 2009 09:45:56 +0000 (11:45 +0200)
Use wpa_msg() like wpa_supplicant in order to avoid having to use direct
hostapd_ctrl_iface_send() calls.

hostapd/ctrl_iface.c
hostapd/ctrl_iface.h
hostapd/wps_hostapd.c

index 82c3d51..4e31fb3 100644 (file)
@@ -42,6 +42,10 @@ struct wpa_ctrl_dst {
 };
 
 
+static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
+                                   const char *buf, size_t len);
+
+
 static int hostapd_ctrl_iface_attach(struct hostapd_data *hapd,
                                     struct sockaddr_un *from,
                                     socklen_t fromlen)
@@ -382,6 +386,16 @@ static char * hostapd_ctrl_iface_path(struct hostapd_data *hapd)
 }
 
 
+static void hostapd_ctrl_iface_msg_cb(void *ctx, int level,
+                                     const char *txt, size_t len)
+{
+       struct hostapd_data *hapd = ctx;
+       if (hapd == NULL)
+               return;
+       hostapd_ctrl_iface_send(hapd, level, txt, len);
+}
+
+
 int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
 {
        struct sockaddr_un addr;
@@ -446,6 +460,7 @@ int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
        hapd->ctrl_sock = s;
        eloop_register_read_sock(s, hostapd_ctrl_iface_receive, hapd,
                                 NULL);
+       wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb);
 
        return 0;
 
@@ -495,8 +510,8 @@ void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd)
 }
 
 
-void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
-                            char *buf, size_t len)
+static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
+                                   const char *buf, size_t len)
 {
        struct wpa_ctrl_dst *dst, *next;
        struct msghdr msg;
@@ -511,7 +526,7 @@ void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
        os_snprintf(levelstr, sizeof(levelstr), "<%d>", level);
        io[0].iov_base = levelstr;
        io[0].iov_len = os_strlen(levelstr);
-       io[1].iov_base = buf;
+       io[1].iov_base = (char *) buf;
        io[1].iov_len = len;
        os_memset(&msg, 0, sizeof(msg));
        msg.msg_iov = io;
index 4d9d663..c997141 100644 (file)
@@ -18,8 +18,6 @@
 #ifndef CONFIG_NO_CTRL_IFACE
 int hostapd_ctrl_iface_init(struct hostapd_data *hapd);
 void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd);
-void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
-                            char *buf, size_t len);
 #else /* CONFIG_NO_CTRL_IFACE */
 static inline int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
 {
@@ -29,11 +27,6 @@ static inline int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
 static inline void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd)
 {
 }
-
-static inline void hostapd_ctrl_iface_send(struct hostapd_data *hapd,
-                                          int level, char *buf, size_t len)
-{
-}
 #endif /* CONFIG_NO_CTRL_IFACE */
 
 #endif /* CTRL_IFACE_H */
index cc1013c..97e7e97 100644 (file)
@@ -19,7 +19,6 @@
 #include "eloop.h"
 #include "uuid.h"
 #include "wpa_ctrl.h"
-#include "ctrl_iface.h"
 #include "ieee802_11_defs.h"
 #include "wps/wps.h"
 #include "wps/wps_defs.h"
@@ -133,7 +132,7 @@ static void hostapd_wps_pin_needed_cb(void *ctx, const u8 *uuid_e,
                          dev->model_number, dev->serial_number,
                          dev->categ, dev->oui, dev->sub_categ);
        if (len > 0 && len < (int) sizeof(txt))
-               hostapd_ctrl_iface_send(hapd, MSG_INFO, txt, len);
+               wpa_msg(hapd, MSG_INFO, "%s", txt);
 
        if (hapd->conf->wps_pin_requests) {
                FILE *f;
@@ -195,8 +194,7 @@ static int hostapd_wps_cred_cb(void *ctx, const struct wps_credential *cred)
        wpa_printf(MSG_DEBUG, "WPS: MAC Address " MACSTR,
                   MAC2STR(cred->mac_addr));
 
-       hostapd_ctrl_iface_send(hapd, MSG_INFO, WPS_EVENT_NEW_AP_SETTINGS,
-                               os_strlen(WPS_EVENT_NEW_AP_SETTINGS));
+       wpa_msg(hapd, MSG_INFO, WPS_EVENT_NEW_AP_SETTINGS);
 
        len = os_strlen(hapd->iface->config_fname) + 5;
        tmp_fname = os_malloc(len);