[PATCH v2] supplicant: Print human readable event names.
greearb at candelatech.com
greearb
Thu Nov 10 17:03:28 PST 2011
From: Ben Greear <greearb at candelatech.com>
This makes it easier to understand the event related
logs.
Also, print re-entrancy depth in the event handler.
I'm suspicious that it could be called in a re-entrant
manner if netlink events are received & processed as
part of another event.
Signed-hostap: Ben Greear <greearb at candelatech.com>
---
:100644 100644 06f2db3... f9b4361... M src/drivers/driver.h
:000000 100644 0000000... e646af2... A src/drivers/driver_common.c
:100644 100644 3641a58... 917b0a7... M wpa_supplicant/Makefile
:100644 100644 9a0663b... 719555c... M wpa_supplicant/events.c
src/drivers/driver.h | 4 ++
src/drivers/driver_common.c | 72 +++++++++++++++++++++++++++++++++++++++++++
wpa_supplicant/Makefile | 2 +
wpa_supplicant/events.c | 9 +++--
4 files changed, 83 insertions(+), 4 deletions(-)
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index 06f2db3..f9b4361 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -3456,6 +3456,10 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
union wpa_event_data *data);
+/* Convert wpa_event_type to a string for logging. */
+const char* event_to_string(enum wpa_event_type event);
+
+
/*
* The following inline functions are provided for convenience to simplify
* event indication for some of the common events.
diff --git a/src/drivers/driver_common.c b/src/drivers/driver_common.c
new file mode 100644
index 0000000..e646af2
--- /dev/null
+++ b/src/drivers/driver_common.c
@@ -0,0 +1,72 @@
+/*
+ * Common driver-related functions.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Alternatively, this software may be distributed under the terms of BSD
+ * license.
+ *
+ * See README and COPYING for more details.
+ */
+
+#include "includes.h"
+#include "../utils/common.h"
+#include "driver.h"
+
+const char* event_to_string(enum wpa_event_type event)
+{
+ switch (event) {
+ case EVENT_ASSOC: return "ASSOC";
+ case EVENT_DISASSOC: return "DISASSOC";
+ case EVENT_MICHAEL_MIC_FAILURE: return "MICHAEL_MIC_FAILURE";
+ case EVENT_SCAN_RESULTS: return "SCAN_RESULTS";
+ case EVENT_ASSOCINFO: return "ASSOCINFO";
+ case EVENT_INTERFACE_STATUS: return "INTERFACE_STATUS";
+ case EVENT_PMKID_CANDIDATE: return "PMKID_CANDIDATE";
+ case EVENT_STKSTART: return "STKSTART";
+ case EVENT_TDLS: return "TDLS";
+ case EVENT_FT_RESPONSE: return "FT_RESPONSE";
+ case EVENT_IBSS_RSN_START: return "IBSS_RSN_START";
+ case EVENT_AUTH: return "AUTH";
+ case EVENT_DEAUTH: return "DEAUTH";
+ case EVENT_ASSOC_REJECT: return "ASSOC_REJECT";
+ case EVENT_AUTH_TIMED_OUT: return "AUTH_TIMED_OUT";
+ case EVENT_ASSOC_TIMED_OUT: return "ASSOC_TIMED_OUT";
+ case EVENT_FT_RRB_RX: return "FT_RRB_RX";
+ case EVENT_WPS_BUTTON_PUSHED: return "WPS_BUTTON_PUSHED";
+ case EVENT_TX_STATUS: return "TX_STATUS";
+ case EVENT_RX_FROM_UNKNOWN: return "RX_FROM_UNKNOWN";
+ case EVENT_RX_MGMT: return "RX_MGMT";
+ case EVENT_RX_ACTION: return "RX_ACTION";
+ case EVENT_REMAIN_ON_CHANNEL: return "REMAIN_ON_CHANNEL";
+ case EVENT_CANCEL_REMAIN_ON_CHANNEL: return "CANCEL_ROC";
+ case EVENT_MLME_RX: return "MLME_RX";
+ case EVENT_RX_PROBE_REQ: return "RX_PROBE_REQ";
+ case EVENT_NEW_STA: return "NEW_STA";
+ case EVENT_EAPOL_RX: return "EAPOL_RX";
+ case EVENT_SIGNAL_CHANGE: return "SIGNAL_CHANGE";
+ case EVENT_INTERFACE_ENABLED: return "IFACE_ENABLED";
+ case EVENT_INTERFACE_DISABLED: return "IFACE_DISABLED";
+ case EVENT_CHANNEL_LIST_CHANGED: return "CHANNEL_LIST_CHANGED";
+ case EVENT_INTERFACE_UNAVAILABLE: return "INTERFACE_UNAVAILABLE";
+ case EVENT_BEST_CHANNEL: return "BEST_CHANNEL";
+ case EVENT_UNPROT_DEAUTH: return "UNPROT_DEAUTH";
+ case EVENT_UNPROT_DISASSOC: return "UNPROT_DISASSOC";
+ case EVENT_STATION_LOW_ACK: return "STA_LOW_ACK";
+ case EVENT_P2P_DEV_FOUND: return "P2P_DEV_FOUND";
+ case EVENT_P2P_GO_NEG_REQ_RX: return "P2P_GO_NEG_REQ_RX";
+ case EVENT_P2P_GO_NEG_COMPLETED: return "P2P_GO_NEG_COMPLETED";
+ case EVENT_P2P_PROV_DISC_REQUEST: return "P2P_PROV_DISC_REQUEST";
+ case EVENT_P2P_PROV_DISC_RESPONSE: return "P2P_PROV_DISC_RESPONSE";
+ case EVENT_P2P_SD_REQUEST: return "P2P_SD_REQUEST";
+ case EVENT_P2P_SD_RESPONSE: return "P2P_SD_RESPONSE";
+ case EVENT_IBSS_PEER_LOST: return "IBSS_PEER_LOST";
+ case EVENT_DRIVER_GTK_REKEY: return "DRIVER_GTK_REKEY";
+ case EVENT_SCHED_SCAN_STOPPED: return "SCHED_SCAN_STOPPED";
+ case EVENT_DRIVER_CLIENT_POLL_OK: return "CLIENT_POLL_OK";
+
+ default: return "UNKNOWN";
+ }
+}
diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile
index 3641a58..917b0a7 100644
--- a/wpa_supplicant/Makefile
+++ b/wpa_supplicant/Makefile
@@ -1321,6 +1321,8 @@ endif
OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
OBJS += $(CONFIG_MAIN).o
+OBJS += ../src/drivers/driver_common.o
+
ifdef CONFIG_PRIVSEP
OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
OBJS_priv += $(OBJS_l2)
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 9a0663b..719555c 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -1945,13 +1945,14 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED &&
event != EVENT_INTERFACE_ENABLED &&
event != EVENT_INTERFACE_STATUS) {
- wpa_dbg(wpa_s, MSG_DEBUG, "Ignore event %d while interface is "
- "disabled", event);
+ wpa_dbg(wpa_s, MSG_DEBUG,
+ "Ignore event %s (%d) while interface is disabled",
+ event_to_string(event), event);
return;
}
- wpa_dbg(wpa_s, MSG_DEBUG, "Event %d received on interface %s",
- event, wpa_s->ifname);
+ wpa_dbg(wpa_s, MSG_DEBUG, "Event %s (%d) received",
+ event_to_string(event), event);
switch (event) {
case EVENT_AUTH:
--
1.7.3.4
More information about the Hostap
mailing list