From 82739fc4f55f51b1d5dd79078bd507837c27dedf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= Date: Thu, 10 Jun 2021 22:13:11 +0100 Subject: wslog: Improve code modularity and efficiency Also tweak format for readability. --- dumpcap.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'dumpcap.c') diff --git a/dumpcap.c b/dumpcap.c index 6036dae003..3391e2697c 100644 --- a/dumpcap.c +++ b/dumpcap.c @@ -327,8 +327,11 @@ static gboolean need_timeout_workaround; #define WRITER_THREAD_TIMEOUT 100000 /* usecs */ static void -dumpcap_log_writer(const char *message, enum ws_log_domain domain, - enum ws_log_level level, void *ptr); +dumpcap_log_writer(const char *format, va_list ap, + const char *prefix, + enum ws_log_domain domain, + enum ws_log_level level, + void *user_data); /* capture related options */ static capture_options global_capture_opts; @@ -5567,29 +5570,30 @@ main(int argc, char *argv[]) } static void -dumpcap_log_writer(const char *message, enum ws_log_domain domain _U_, - enum ws_log_level level _U_, void *ptr _U_) +dumpcap_log_writer(const char *format, va_list ap, + const char *prefix, + enum ws_log_domain domain _U_, + enum ws_log_level level _U_, + void *user_data _U_) { #if defined(DEBUG_DUMPCAP) || defined(DEBUG_CHILD_DUMPCAP) #ifdef DEBUG_DUMPCAP - fprintf(stderr, "%s\n", message); - fflush(stderr); + ws_log_fprint(stderr, format, ap, prefix); #endif #ifdef DEBUG_CHILD_DUMPCAP - fprintf(debug_log, "%s\n", message); - fflush(debug_log); -#endif - return; + ws_log_fprint(debug_log, format, ap, prefix); #endif - - /* Messages goto stderr or */ - /* to parent especially formatted if dumpcap running as child. */ +#else + /* Messages goto stderr or to parent especially formatted if dumpcap + * is running as child. */ if (capture_child) { - sync_pipe_errmsg_to_parent(2, message, ""); + gchar *msg = g_strdup_vprintf(format, ap); + sync_pipe_errmsg_to_parent(2, msg, ""); + g_free(msg); } else { - fprintf(stderr, "%s", message); - fflush(stderr); + ws_log_fprint(stderr, format, ap, prefix); } +#endif } -- cgit v1.2.3