mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 06:11:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			206 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			206 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * wpa_supplicant/hostapd / Debug prints
 | 
						|
 * Copyright (c) 2002-2007, Jouni Malinen <j@w1.fi>
 | 
						|
 *
 | 
						|
 * 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.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef WPA_DEBUG_H
 | 
						|
#define WPA_DEBUG_H
 | 
						|
 | 
						|
#include "wpabuf.h"
 | 
						|
#include "esp_log.h"
 | 
						|
 | 
						|
#ifdef ESPRESSIF_USE
 | 
						|
 | 
						|
#define TAG "wpa"
 | 
						|
 | 
						|
#define MSG_ERROR ESP_LOG_ERROR
 | 
						|
#define MSG_WARNING ESP_LOG_WARN
 | 
						|
#define MSG_INFO ESP_LOG_INFO
 | 
						|
#define MSG_DEBUG ESP_LOG_DEBUG
 | 
						|
#define MSG_MSGDUMP ESP_LOG_VERBOSE
 | 
						|
 | 
						|
#else 
 | 
						|
enum { MSG_MSGDUMP, MSG_DEBUG, MSG_INFO, MSG_WARNING, MSG_ERROR };
 | 
						|
#endif
 | 
						|
 | 
						|
/** EAP authentication completed successfully */
 | 
						|
#define WPA_EVENT_EAP_SUCCESS "CTRL-EVENT-EAP-SUCCESS "
 | 
						|
 | 
						|
int wpa_debug_open_file(const char *path);
 | 
						|
void wpa_debug_close_file(void);
 | 
						|
 | 
						|
/**
 | 
						|
 * wpa_debug_printf_timestamp - Print timestamp for debug output
 | 
						|
 *
 | 
						|
 * This function prints a timestamp in seconds_from_1970.microsoconds
 | 
						|
 * format if debug output has been configured to include timestamps in debug
 | 
						|
 * messages.
 | 
						|
 */
 | 
						|
void wpa_debug_print_timestamp(void);
 | 
						|
 | 
						|
#ifdef DEBUG_PRINT
 | 
						|
/**
 | 
						|
 * wpa_printf - conditional printf
 | 
						|
 * @level: priority level (MSG_*) of the message
 | 
						|
 * @fmt: printf format string, followed by optional arguments
 | 
						|
 *
 | 
						|
 * This function is used to print conditional debugging and error messages. The
 | 
						|
 * output may be directed to stdout, stderr, and/or syslog based on
 | 
						|
 * configuration.
 | 
						|
 *
 | 
						|
 * Note: New line '\n' is added to the end of the text when printing to stdout.
 | 
						|
 */
 | 
						|
#define wpa_printf(level,fmt, args...) ESP_LOG_LEVEL_LOCAL(level, TAG, fmt, ##args)
 | 
						|
 | 
						|
void wpa_dump_mem(char* desc, uint8_t *addr, uint16_t len);
 | 
						|
static inline void wpa_hexdump_ascii(int level, const char *title, const u8 *buf, size_t len)
 | 
						|
{
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
static inline void wpa_hexdump_ascii_key(int level, const char *title, const u8 *buf, size_t len)
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * wpa_hexdump - conditional hex dump
 | 
						|
 * @level: priority level (MSG_*) of the message
 | 
						|
 * @title: title of for the message
 | 
						|
 * @buf: data buffer to be dumped
 | 
						|
 * @len: length of the buf
 | 
						|
 *
 | 
						|
 * This function is used to print conditional debugging and error messages. The
 | 
						|
 * 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 u8 *buf, size_t len);
 | 
						|
 | 
						|
static inline void wpa_hexdump_buf(int level, const char *title,
 | 
						|
				   const struct wpabuf *buf)
 | 
						|
{
 | 
						|
	wpa_hexdump(level, title, wpabuf_head(buf), wpabuf_len(buf));
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * wpa_hexdump_key - conditional hex dump, hide keys
 | 
						|
 * @level: priority level (MSG_*) of the message
 | 
						|
 * @title: title of for the message
 | 
						|
 * @buf: data buffer to be dumped
 | 
						|
 * @len: length of the buf
 | 
						|
 *
 | 
						|
 * This function is used to print conditional debugging and error messages. The
 | 
						|
 * output may be directed to stdout, stderr, and/or syslog based on
 | 
						|
 * configuration. The contents of buf is printed out has hex dump. This works
 | 
						|
 * 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 u8 *buf, size_t len);
 | 
						|
 | 
						|
 | 
						|
static inline void wpa_hexdump_buf_key(int level, const char *title,
 | 
						|
				       const struct wpabuf *buf)
 | 
						|
{
 | 
						|
	wpa_hexdump_key(level, title, wpabuf_head(buf), wpabuf_len(buf));
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * wpa_hexdump_ascii - conditional hex dump
 | 
						|
 * @level: priority level (MSG_*) of the message
 | 
						|
 * @title: title of for the message
 | 
						|
 * @buf: data buffer to be dumped
 | 
						|
 * @len: length of the buf
 | 
						|
 *
 | 
						|
 * This function is used to print conditional debugging and error messages. The
 | 
						|
 * output may be directed to stdout, stderr, and/or syslog based on
 | 
						|
 * configuration. The contents of buf is printed out has hex dump with both
 | 
						|
 * 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 u8 *buf,
 | 
						|
		       size_t len);
 | 
						|
 | 
						|
/**
 | 
						|
 * wpa_hexdump_ascii_key - conditional hex dump, hide keys
 | 
						|
 * @level: priority level (MSG_*) of the message
 | 
						|
 * @title: title of for the message
 | 
						|
 * @buf: data buffer to be dumped
 | 
						|
 * @len: length of the buf
 | 
						|
 *
 | 
						|
 * This function is used to print conditional debugging and error messages. The
 | 
						|
 * output may be directed to stdout, stderr, and/or syslog based on
 | 
						|
 * configuration. The contents of buf is printed out has hex dump with both
 | 
						|
 * the hex numbers and ASCII characters (for printable range) are shown. 16
 | 
						|
 * 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 u8 *buf,
 | 
						|
			   size_t len);
 | 
						|
#else
 | 
						|
#define wpa_printf(level,fmt, args...) do {} while(0)
 | 
						|
#define wpa_hexdump(...) do {} while(0)
 | 
						|
#define wpa_dump_mem(...) do {} while(0)
 | 
						|
#define wpa_hexdump_buf(...) do {} while(0)
 | 
						|
#define wpa_hexdump_key(...) do {} while(0)
 | 
						|
#define wpa_hexdump_buf_key(...) do {} while(0)
 | 
						|
#define wpa_hexdump_ascii(...) do {} while(0)
 | 
						|
#define wpa_hexdump_ascii_key(...) do {} while(0)
 | 
						|
#endif
 | 
						|
 | 
						|
#define wpa_auth_logger
 | 
						|
#define wpa_auth_vlogger
 | 
						|
 | 
						|
/**
 | 
						|
 * wpa_msg - Conditional printf for default target and ctrl_iface monitors
 | 
						|
 * @ctx: Pointer to context data; this is the ctx variable registered
 | 
						|
 *	with struct wpa_driver_ops::init()
 | 
						|
 * @level: priority level (MSG_*) of the message
 | 
						|
 * @fmt: printf format string, followed by optional arguments
 | 
						|
 *
 | 
						|
 * This function is used to print conditional debugging and error messages. The
 | 
						|
 * output may be directed to stdout, stderr, and/or syslog based on
 | 
						|
 * configuration. This function is like wpa_printf(), but it also sends the
 | 
						|
 * same message to all attached ctrl_iface monitors.
 | 
						|
 *
 | 
						|
 * 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);
 | 
						|
 | 
						|
/**
 | 
						|
 * wpa_msg_ctrl - Conditional printf for ctrl_iface monitors
 | 
						|
 * @ctx: Pointer to context data; this is the ctx variable registered
 | 
						|
 *	with struct wpa_driver_ops::init()
 | 
						|
 * @level: priority level (MSG_*) of the message
 | 
						|
 * @fmt: printf format string, followed by optional arguments
 | 
						|
 *
 | 
						|
 * This function is used to print conditional debugging and error messages.
 | 
						|
 * This function is like wpa_msg(), but it sends the output only to the
 | 
						|
 * 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, ...)
 | 
						|
PRINTF_FORMAT(3, 4);
 | 
						|
 | 
						|
typedef void (*wpa_msg_cb_func)(void *ctx, int level, const char *txt,
 | 
						|
				size_t len);
 | 
						|
 | 
						|
typedef void (*eloop_timeout_handler)(void *eloop_data, void *user_ctx);
 | 
						|
 | 
						|
int eloop_cancel_timeout(eloop_timeout_handler handler,
 | 
						|
			 void *eloop_data, void *user_data);
 | 
						|
 | 
						|
int eloop_register_timeout(unsigned int secs, unsigned int usecs,
 | 
						|
			   eloop_timeout_handler handler,
 | 
						|
			   void *eloop_data, void *user_data);
 | 
						|
 | 
						|
 | 
						|
#endif /* WPA_DEBUG_H */
 |