[PATCH] hostapd: Rename event handling functions in hostapd for

Hui Bai hui.bai at nxp.com
Wed Jun 12 23:32:01 PDT 2024


On Zephyr, both wpa_supplicant and hostapd are supported. One compilation error was found due to function name conflict.
Both wpa_supplicant and hostapd has its own global event and event handlers with same name:
wpa_supplicant_event
wpa_supplicant_event_global

To fix the compilation error, rename above functions in hostapd for Zephyr as below:
hostapd_event
hostapd_event_global

Signed-off-by: Hui Bai <mailto:hui.bai at nxp.com>
---
src/ap/drv_callbacks.c | 10 ++++++++++
src/drivers/driver.h   | 30 ++++++++++++++++++++++++++++++
2 files changed, 40 insertions(+)

diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c
index ad06e6a3f..29836cc73 100644
--- a/src/ap/drv_callbacks.c
+++ b/src/ap/drv_callbacks.c
@@ -2409,8 +2409,13 @@ static void hostapd_event_color_change(struct hostapd_data *hapd, bool success)
#endif  /* CONFIG_IEEE80211AX */

 
+#ifdef __ZEPHYR__
+void hostapd_event(void *ctx, enum wpa_event_type event,
+                  union wpa_event_data *data)
+#else
void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
                          union wpa_event_data *data)
+#endif
{
       struct hostapd_data *hapd = ctx;
       struct sta_info *sta;
@@ -2761,8 +2766,13 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
}

 
+#ifdef __ZEPHYR__
+void hostapd_event_global(void *ctx, enum wpa_event_type event,
+                          union wpa_event_data *data)
+#else
void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event,
                                  union wpa_event_data *data)
+#endif
{
       struct hapd_interfaces *interfaces = ctx;
       struct hostapd_data *hapd;
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index 204694dd4..d86bf403a 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -6846,6 +6846,21 @@ union wpa_event_data {
void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
                          union wpa_event_data *data);

+#ifdef __ZEPHYR__
+/**
+ * hostapd_event - Report a driver event for hostapd
+ * @ctx: Context pointer (wpa_s); this is the ctx variable registered
+ *      with struct wpa_driver_ops::init()
+ * @event: event type (defined above)
+ * @data: possible extra data for the event
+ *
+ * Driver wrapper code should call this function whenever an event is received
+ * from the driver.
+ */
+void hostapd_event(void *ctx, enum wpa_event_type event,
+                  union wpa_event_data *data);
+#endif
+
/**
  * wpa_supplicant_event_global - Report a driver event for wpa_supplicant
  * @ctx: Context pointer (wpa_s); this is the ctx variable registered
@@ -6859,6 +6874,21 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event,
                                  union wpa_event_data *data);

+#ifdef __ZEPHYR__
+/**
+ * hostapd_event_global - Report a driver event for hostapd
+ * @ctx: Context pointer (wpa_s); this is the ctx variable registered
+ *      with struct wpa_driver_ops::init()
+ * @event: event type (defined above)
+ * @data: possible extra data for the event
+ *
+ * Same as wpa_supplicant_event(), but we search for the interface in
+ * wpa_global.
+ */
+void hostapd_event_global(void *ctx, enum wpa_event_type event,
+                          union wpa_event_data *data);
+#endif
+
/*
  * The following inline functions are provided for convenience to simplify
  * event indication for some of the common events.
-- 
2.25.1




More information about the Hostap mailing list