aboutsummaryrefslogtreecommitdiffstats
path: root/dumpcap.c
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2021-06-10 22:13:11 +0100
committerJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2021-06-14 13:13:12 +0100
commit82739fc4f55f51b1d5dd79078bd507837c27dedf (patch)
tree684987faff1526d6bf7fb7261b0491d8d62f23e9 /dumpcap.c
parentc025e793ddbfe30cae784dc8b00566c139a02e41 (diff)
wslog: Improve code modularity and efficiency
Also tweak format for readability.
Diffstat (limited to 'dumpcap.c')
-rw-r--r--dumpcap.c36
1 files changed, 20 insertions, 16 deletions
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
}