[PATCH] debug: add option to log to tracing

Jouni Malinen j at w1.fi
Sat Mar 31 07:02:30 EDT 2012


On Mon, Mar 12, 2012 at 02:43:50PM +0100, Johannes Berg wrote:
> Add the option (-T) to wpa_supplicant to log
> all debug messages into the kernel tracing,
> allowing to aggregate kernel debugging with
> wpa_supplicant debugging and recording all
> with trace-cmd.
> 
> Since tracing is has relatively low overhead
> and can be filtered afterwards, record all
> messages regardless of log level. However,
> it will honour the -K option and not record
> key material by default.

Thanks! Applied.

> diff --git a/src/utils/wpa_debug.c b/src/utils/wpa_debug.c
> @@ -106,6 +118,72 @@ static int syslog_priority(int level)
> +int wpa_debug_open_linux_tracing(void)

> +	line = strtok_r(buf, "\n", &tmp1);
> +	if (line) do {
> +		char *tmp2, *tmp_path, *fstype;
> +
> +		/* "<dev> <mountpoint> <fs type> ..." */
> +		strtok_r(line, " ", &tmp2);

gcc was not happy about this construction for some reason.. It seemed to
think that line could be NULL here and warned about tmp2 not having been
initialized.

> +	} while ((line = strtok_r(NULL, "\n", &tmp1)));

I converted this somewhat strange if-do-while loop into a simpler while
loop which is apparently easier for gcc (and me, too, for that matter)
to understand.

> @@ -281,6 +388,29 @@ static void _wpa_hexdump_ascii(int level, const char *title, const u8 *buf,
> +	if (wpa_debug_tracing_file != NULL) {
> +		size_t orig_len = len;
> +
> +		fprintf(wpa_debug_tracing_file,
> +			WPAS_TRACE_PFX "%s - hexdump_ascii(len=%lu):",
> +			level, title, (unsigned long) len);
> +		if (buf == NULL) {
> +			fprintf(wpa_debug_tracing_file, " [NULL]\n");
> +		} else if (!show) {
> +			fprintf(wpa_debug_tracing_file, " [REMOVED]\n");
> +		} else {
> +			/* can do ascii processing in userspace */
> +			for (i = 0; i < len; i++)
> +				fprintf(wpa_debug_tracing_file,
> +					" %02x", buf[i]);
> +		}
> +		fflush(wpa_debug_tracing_file);
> +
> +		len = orig_len;
> +	}

I can't see where the len variable would be changed here, so I dropped
the orig_len save-and-restore.

-- 
Jouni Malinen                                            PGP id EFC895FA


More information about the HostAP mailing list