Enable wpa_msg() for hostapd
Use wpa_msg() like wpa_supplicant in order to avoid having to use direct hostapd_ctrl_iface_send() calls.
This commit is contained in:
parent
05bf32cc87
commit
42d16805c9
3 changed files with 20 additions and 14 deletions
|
@ -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,
|
static int hostapd_ctrl_iface_attach(struct hostapd_data *hapd,
|
||||||
struct sockaddr_un *from,
|
struct sockaddr_un *from,
|
||||||
socklen_t fromlen)
|
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)
|
int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
|
||||||
{
|
{
|
||||||
struct sockaddr_un addr;
|
struct sockaddr_un addr;
|
||||||
|
@ -446,6 +460,7 @@ int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
|
||||||
hapd->ctrl_sock = s;
|
hapd->ctrl_sock = s;
|
||||||
eloop_register_read_sock(s, hostapd_ctrl_iface_receive, hapd,
|
eloop_register_read_sock(s, hostapd_ctrl_iface_receive, hapd,
|
||||||
NULL);
|
NULL);
|
||||||
|
wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb);
|
||||||
|
|
||||||
return 0;
|
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,
|
static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
|
||||||
char *buf, size_t len)
|
const char *buf, size_t len)
|
||||||
{
|
{
|
||||||
struct wpa_ctrl_dst *dst, *next;
|
struct wpa_ctrl_dst *dst, *next;
|
||||||
struct msghdr msg;
|
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);
|
os_snprintf(levelstr, sizeof(levelstr), "<%d>", level);
|
||||||
io[0].iov_base = levelstr;
|
io[0].iov_base = levelstr;
|
||||||
io[0].iov_len = os_strlen(levelstr);
|
io[0].iov_len = os_strlen(levelstr);
|
||||||
io[1].iov_base = buf;
|
io[1].iov_base = (char *) buf;
|
||||||
io[1].iov_len = len;
|
io[1].iov_len = len;
|
||||||
os_memset(&msg, 0, sizeof(msg));
|
os_memset(&msg, 0, sizeof(msg));
|
||||||
msg.msg_iov = io;
|
msg.msg_iov = io;
|
||||||
|
|
|
@ -18,8 +18,6 @@
|
||||||
#ifndef CONFIG_NO_CTRL_IFACE
|
#ifndef CONFIG_NO_CTRL_IFACE
|
||||||
int hostapd_ctrl_iface_init(struct hostapd_data *hapd);
|
int hostapd_ctrl_iface_init(struct hostapd_data *hapd);
|
||||||
void hostapd_ctrl_iface_deinit(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 */
|
#else /* CONFIG_NO_CTRL_IFACE */
|
||||||
static inline int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
|
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_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 /* CONFIG_NO_CTRL_IFACE */
|
||||||
|
|
||||||
#endif /* CTRL_IFACE_H */
|
#endif /* CTRL_IFACE_H */
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include "eloop.h"
|
#include "eloop.h"
|
||||||
#include "uuid.h"
|
#include "uuid.h"
|
||||||
#include "wpa_ctrl.h"
|
#include "wpa_ctrl.h"
|
||||||
#include "ctrl_iface.h"
|
|
||||||
#include "ieee802_11_defs.h"
|
#include "ieee802_11_defs.h"
|
||||||
#include "wps/wps.h"
|
#include "wps/wps.h"
|
||||||
#include "wps/wps_defs.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->model_number, dev->serial_number,
|
||||||
dev->categ, dev->oui, dev->sub_categ);
|
dev->categ, dev->oui, dev->sub_categ);
|
||||||
if (len > 0 && len < (int) sizeof(txt))
|
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) {
|
if (hapd->conf->wps_pin_requests) {
|
||||||
FILE *f;
|
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,
|
wpa_printf(MSG_DEBUG, "WPS: MAC Address " MACSTR,
|
||||||
MAC2STR(cred->mac_addr));
|
MAC2STR(cred->mac_addr));
|
||||||
|
|
||||||
hostapd_ctrl_iface_send(hapd, MSG_INFO, WPS_EVENT_NEW_AP_SETTINGS,
|
wpa_msg(hapd, MSG_INFO, WPS_EVENT_NEW_AP_SETTINGS);
|
||||||
os_strlen(WPS_EVENT_NEW_AP_SETTINGS));
|
|
||||||
|
|
||||||
len = os_strlen(hapd->iface->config_fname) + 5;
|
len = os_strlen(hapd->iface->config_fname) + 5;
|
||||||
tmp_fname = os_malloc(len);
|
tmp_fname = os_malloc(len);
|
||||||
|
|
Loading…
Reference in a new issue