Add patches: - 170-wpa_supplicant-fix-compiling-without-IEEE8021X_EAPOL.patch Remove upstreamed: - 170-DPP-fix-memleak-of-intro.peer_key.patch - 461-driver_nl80211-use-new-parameters-during-ibss-join.patch - 800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch - 992-openssl-include-rsa.patch Automatically refreshed: - 011-mesh-use-deterministic-channel-on-channel-switch.patch - 021-fix-sta-add-after-previous-connection.patch - 022-hostapd-fix-use-of-uninitialized-stack-variables.patch - 030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch - 040-mesh-allow-processing-authentication-frames-in-block.patch - 050-build_fix.patch - 110-mbedtls-TLS-crypto-option-initial-port.patch - 120-mbedtls-fips186_2_prf.patch - 140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch - 150-add-NULL-checks-encountered-during-tests-hwsim.patch - 160-dpp_pkex-EC-point-mul-w-value-prime.patch - 200-multicall.patch - 300-noscan.patch - 310-rescan_immediately.patch - 330-nl80211_fix_set_freq.patch - 341-mesh-ctrl-iface-channel-switch.patch - 360-ctrl_iface_reload.patch - 381-hostapd_cli_UNKNOWN-COMMAND.patch - 390-wpa_ie_cap_workaround.patch - 410-limit_debug_messages.patch - 420-indicate-features.patch - 430-hostapd_cli_ifdef.patch - 450-scan_wait.patch - 460-wpa_supplicant-add-new-config-params-to-be-used-with.patch - 463-add-mcast_rate-to-11s.patch - 465-hostapd-config-support-random-BSS-color.patch - 500-lto-jobserver-support.patch - 590-rrm-wnm-statistics.patch - 710-vlan_no_bridge.patch - 720-iface_max_num_sta.patch - 730-ft_iface.patch - 750-qos_map_set_without_interworking.patch - 751-qos_map_ignore_when_unsupported.patch - 760-dynamic_own_ip.patch - 761-shared_das_port.patch - 990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch Manually refresh: - 010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch - 301-mesh-noscan.patch - 340-reload_freq_change.patch - 350-nl80211_del_beacon_bss.patch - 370-ap_sta_support.patch - 380-disable_ctrl_iface_mib.patch - 464-fix-mesh-obss-check.patch - 470-survey_data_fallback.patch - 600-ubus_support.patch - 700-wifi-reload.patch - 711-wds_bridge_force.patch - 740-snoop_iface.patch Tested-by: Packet Please <pktpls@systemli.org> [Fritzbox 4040 (ipq40xx), EAP225-Outdoor (ath79); 802.11s, WPA3 OWE, and WPA3 PSK] Tested-by: Andrew Sim <andrewsimz@gmail.com> [mediatek/filogic] Signed-off-by: Nick Hainke <vincent@systemli.org>
211 lines
6.5 KiB
Diff
211 lines
6.5 KiB
Diff
--- a/src/utils/wpa_debug.c
|
|
+++ b/src/utils/wpa_debug.c
|
|
@@ -206,7 +206,7 @@ void wpa_debug_close_linux_tracing(void)
|
|
*
|
|
* Note: New line '\n' is added to the end of the text when printing to stdout.
|
|
*/
|
|
-void wpa_printf(int level, const char *fmt, ...)
|
|
+void _wpa_printf(int level, const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
@@ -255,7 +255,7 @@ void wpa_printf(int level, const char *f
|
|
}
|
|
|
|
|
|
-static void _wpa_hexdump(int level, const char *title, const u8 *buf,
|
|
+void _wpa_hexdump(int level, const char *title, const u8 *buf,
|
|
size_t len, int show, int only_syslog)
|
|
{
|
|
size_t i;
|
|
@@ -382,19 +382,7 @@ static void _wpa_hexdump(int level, cons
|
|
#endif /* CONFIG_ANDROID_LOG */
|
|
}
|
|
|
|
-void wpa_hexdump(int level, const char *title, const void *buf, size_t len)
|
|
-{
|
|
- _wpa_hexdump(level, title, buf, len, 1, 0);
|
|
-}
|
|
-
|
|
-
|
|
-void wpa_hexdump_key(int level, const char *title, const void *buf, size_t len)
|
|
-{
|
|
- _wpa_hexdump(level, title, buf, len, wpa_debug_show_keys, 0);
|
|
-}
|
|
-
|
|
-
|
|
-static void _wpa_hexdump_ascii(int level, const char *title, const void *buf,
|
|
+void _wpa_hexdump_ascii(int level, const char *title, const void *buf,
|
|
size_t len, int show)
|
|
{
|
|
size_t i, llen;
|
|
@@ -507,20 +495,6 @@ file_done:
|
|
}
|
|
|
|
|
|
-void wpa_hexdump_ascii(int level, const char *title, const void *buf,
|
|
- size_t len)
|
|
-{
|
|
- _wpa_hexdump_ascii(level, title, buf, len, 1);
|
|
-}
|
|
-
|
|
-
|
|
-void wpa_hexdump_ascii_key(int level, const char *title, const void *buf,
|
|
- size_t len)
|
|
-{
|
|
- _wpa_hexdump_ascii(level, title, buf, len, wpa_debug_show_keys);
|
|
-}
|
|
-
|
|
-
|
|
#ifdef CONFIG_DEBUG_FILE
|
|
static char *last_path = NULL;
|
|
#endif /* CONFIG_DEBUG_FILE */
|
|
@@ -644,7 +618,7 @@ void wpa_msg_register_ifname_cb(wpa_msg_
|
|
}
|
|
|
|
|
|
-void wpa_msg(void *ctx, int level, const char *fmt, ...)
|
|
+void _wpa_msg(void *ctx, int level, const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
char *buf;
|
|
@@ -682,7 +656,7 @@ void wpa_msg(void *ctx, int level, const
|
|
}
|
|
|
|
|
|
-void wpa_msg_ctrl(void *ctx, int level, const char *fmt, ...)
|
|
+void _wpa_msg_ctrl(void *ctx, int level, const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
char *buf;
|
|
--- a/src/utils/wpa_debug.h
|
|
+++ b/src/utils/wpa_debug.h
|
|
@@ -51,6 +51,17 @@ void wpa_debug_close_file(void);
|
|
void wpa_debug_setup_stdout(void);
|
|
void wpa_debug_stop_log(void);
|
|
|
|
+/* internal */
|
|
+void _wpa_hexdump(int level, const char *title, const u8 *buf,
|
|
+ size_t len, int show, int only_syslog);
|
|
+void _wpa_hexdump_ascii(int level, const char *title, const void *buf,
|
|
+ size_t len, int show);
|
|
+extern int wpa_debug_show_keys;
|
|
+
|
|
+#ifndef CONFIG_MSG_MIN_PRIORITY
|
|
+#define CONFIG_MSG_MIN_PRIORITY 0
|
|
+#endif
|
|
+
|
|
/**
|
|
* wpa_debug_printf_timestamp - Print timestamp for debug output
|
|
*
|
|
@@ -71,9 +82,15 @@ void wpa_debug_print_timestamp(void);
|
|
*
|
|
* Note: New line '\n' is added to the end of the text when printing to stdout.
|
|
*/
|
|
-void wpa_printf(int level, const char *fmt, ...)
|
|
+void _wpa_printf(int level, const char *fmt, ...)
|
|
PRINTF_FORMAT(2, 3);
|
|
|
|
+#define wpa_printf(level, ...) \
|
|
+ do { \
|
|
+ if (level >= CONFIG_MSG_MIN_PRIORITY) \
|
|
+ _wpa_printf(level, __VA_ARGS__); \
|
|
+ } while(0)
|
|
+
|
|
/**
|
|
* wpa_hexdump - conditional hex dump
|
|
* @level: priority level (MSG_*) of the message
|
|
@@ -85,7 +102,13 @@ PRINTF_FORMAT(2, 3);
|
|
* output may be directed to stdout, stderr, and/or syslog based on
|
|
* configuration. The contents of buf is printed out has hex dump.
|
|
*/
|
|
-void wpa_hexdump(int level, const char *title, const void *buf, size_t len);
|
|
+static inline void wpa_hexdump(int level, const char *title, const void *buf, size_t len)
|
|
+{
|
|
+ if (level < CONFIG_MSG_MIN_PRIORITY)
|
|
+ return;
|
|
+
|
|
+ _wpa_hexdump(level, title, buf, len, 1, 1);
|
|
+}
|
|
|
|
static inline void wpa_hexdump_buf(int level, const char *title,
|
|
const struct wpabuf *buf)
|
|
@@ -107,7 +130,13 @@ static inline void wpa_hexdump_buf(int l
|
|
* like wpa_hexdump(), but by default, does not include secret keys (passwords,
|
|
* etc.) in debug output.
|
|
*/
|
|
-void wpa_hexdump_key(int level, const char *title, const void *buf, size_t len);
|
|
+static inline void wpa_hexdump_key(int level, const char *title, const u8 *buf, size_t len)
|
|
+{
|
|
+ if (level < CONFIG_MSG_MIN_PRIORITY)
|
|
+ return;
|
|
+
|
|
+ _wpa_hexdump(level, title, buf, len, wpa_debug_show_keys, 1);
|
|
+}
|
|
|
|
static inline void wpa_hexdump_buf_key(int level, const char *title,
|
|
const struct wpabuf *buf)
|
|
@@ -129,8 +158,14 @@ static inline void wpa_hexdump_buf_key(i
|
|
* the hex numbers and ASCII characters (for printable range) are shown. 16
|
|
* bytes per line will be shown.
|
|
*/
|
|
-void wpa_hexdump_ascii(int level, const char *title, const void *buf,
|
|
- size_t len);
|
|
+static inline void wpa_hexdump_ascii(int level, const char *title,
|
|
+ const u8 *buf, size_t len)
|
|
+{
|
|
+ if (level < CONFIG_MSG_MIN_PRIORITY)
|
|
+ return;
|
|
+
|
|
+ _wpa_hexdump_ascii(level, title, buf, len, 1);
|
|
+}
|
|
|
|
/**
|
|
* wpa_hexdump_ascii_key - conditional hex dump, hide keys
|
|
@@ -146,8 +181,14 @@ void wpa_hexdump_ascii(int level, const
|
|
* bytes per line will be shown. This works like wpa_hexdump_ascii(), but by
|
|
* default, does not include secret keys (passwords, etc.) in debug output.
|
|
*/
|
|
-void wpa_hexdump_ascii_key(int level, const char *title, const void *buf,
|
|
- size_t len);
|
|
+static inline void wpa_hexdump_ascii_key(int level, const char *title,
|
|
+ const u8 *buf, size_t len)
|
|
+{
|
|
+ if (level < CONFIG_MSG_MIN_PRIORITY)
|
|
+ return;
|
|
+
|
|
+ _wpa_hexdump_ascii(level, title, buf, len, wpa_debug_show_keys);
|
|
+}
|
|
|
|
/*
|
|
* wpa_dbg() behaves like wpa_msg(), but it can be removed from build to reduce
|
|
@@ -184,7 +225,12 @@ void wpa_hexdump_ascii_key(int level, co
|
|
*
|
|
* Note: New line '\n' is added to the end of the text when printing to stdout.
|
|
*/
|
|
-void wpa_msg(void *ctx, int level, const char *fmt, ...) PRINTF_FORMAT(3, 4);
|
|
+void _wpa_msg(void *ctx, int level, const char *fmt, ...) PRINTF_FORMAT(3, 4);
|
|
+#define wpa_msg(ctx, level, ...) \
|
|
+ do { \
|
|
+ if (level >= CONFIG_MSG_MIN_PRIORITY) \
|
|
+ _wpa_msg(ctx, level, __VA_ARGS__); \
|
|
+ } while(0)
|
|
|
|
/**
|
|
* wpa_msg_ctrl - Conditional printf for ctrl_iface monitors
|
|
@@ -198,8 +244,13 @@ void wpa_msg(void *ctx, int level, const
|
|
* attached ctrl_iface monitors. In other words, it can be used for frequent
|
|
* events that do not need to be sent to syslog.
|
|
*/
|
|
-void wpa_msg_ctrl(void *ctx, int level, const char *fmt, ...)
|
|
+void _wpa_msg_ctrl(void *ctx, int level, const char *fmt, ...)
|
|
PRINTF_FORMAT(3, 4);
|
|
+#define wpa_msg_ctrl(ctx, level, ...) \
|
|
+ do { \
|
|
+ if (level >= CONFIG_MSG_MIN_PRIORITY) \
|
|
+ _wpa_msg_ctrl(ctx, level, __VA_ARGS__); \
|
|
+ } while(0)
|
|
|
|
/**
|
|
* wpa_msg_global - Global printf for ctrl_iface monitors
|