From bf3e03da6740fa103a73d346eb12bf906ca0c2c9 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 15 Feb 2023 15:12:49 -0500 Subject: [PATCH] MT#56471 add new 'media' log_info type Change-Id: I0c3212c559946a8f2f3513bac2d2b90c1f05dd4b --- daemon/log.c | 13 +++++++++++++ daemon/log.h | 4 ++++ daemon/log_funcs.h | 11 +++++++++++ t/log_funcs.h | 3 +++ 4 files changed, 31 insertions(+) diff --git a/daemon/log.c b/daemon/log.c index 9667591d3..90b5a0d12 100644 --- a/daemon/log.c +++ b/daemon/log.c @@ -67,6 +67,12 @@ static void ilog_prefix_default(char *prefix, size_t prefix_len) { STR_FMT_M(&log_info.u.ice_agent->media->monologue->tag), log_info.u.ice_agent->media->index); break; + case LOG_INFO_MEDIA: + snprintf(prefix, prefix_len, "[" STR_FORMAT_M "/" STR_FORMAT_M "/%u]: ", + STR_FMT_M(&log_info.u.call->callid), + STR_FMT_M(&log_info.v.media->monologue->tag), + log_info.v.media->index); + break; } } @@ -98,6 +104,12 @@ static void ilog_prefix_parsable(char *prefix, size_t prefix_len) { STR_FMT(&log_info.u.ice_agent->media->monologue->tag), log_info.u.ice_agent->media->index); break; + case LOG_INFO_MEDIA: + snprintf(prefix, prefix_len, "[ID=\""STR_FORMAT"\" tag=\""STR_FORMAT"\" index=\"%u\"]: ", + STR_FMT(&log_info.u.call->callid), + STR_FMT(&log_info.v.media->monologue->tag), + log_info.v.media->index); + break; } } @@ -142,6 +154,7 @@ int get_local_log_level(unsigned int subsystem_idx) { switch (log_info.e) { case LOG_INFO_CALL: + case LOG_INFO_MEDIA: call = log_info.u.call; break; case LOG_INFO_STREAM_FD: diff --git a/daemon/log.h b/daemon/log.h index 5f9d5263a..78fcfa4e6 100644 --- a/daemon/log.h +++ b/daemon/log.h @@ -21,6 +21,9 @@ struct log_info { struct ice_agent *ice_agent; void *ptr; } u; + union { + struct call_media *media; + } v; enum { LOG_INFO_NONE = 0, LOG_INFO_CALL, @@ -28,6 +31,7 @@ struct log_info { LOG_INFO_STR, LOG_INFO_C_STRING, LOG_INFO_ICE_AGENT, + LOG_INFO_MEDIA, } e; }; diff --git a/daemon/log_funcs.h b/daemon/log_funcs.h index 31d91b54c..5155e056d 100644 --- a/daemon/log_funcs.h +++ b/daemon/log_funcs.h @@ -13,6 +13,7 @@ INLINE void __log_info_release(struct log_info *li) { case LOG_INFO_NONE: return; case LOG_INFO_CALL: + case LOG_INFO_MEDIA: obj_put(li->u.call); break; case LOG_INFO_STREAM_FD: @@ -105,6 +106,16 @@ INLINE void log_info_ice_agent(struct ice_agent *ag) { log_info.e = LOG_INFO_ICE_AGENT; log_info.u.ice_agent = obj_get(&ag->tt_obj); } +INLINE void log_info_media(struct call_media *m) { + if (!m) + return; + if (!m->call) + return; + __log_info_push(); + log_info.e = LOG_INFO_MEDIA; + log_info.u.call = obj_get(m->call); + log_info.v.media = m; +} diff --git a/t/log_funcs.h b/t/log_funcs.h index d1444f007..334a5782a 100644 --- a/t/log_funcs.h +++ b/t/log_funcs.h @@ -7,6 +7,7 @@ struct call; struct stream_fd; struct ice_agent; +struct call_media; INLINE void log_info_reset(void) { } @@ -24,5 +25,7 @@ INLINE void log_info_c_string(const char *s) { } INLINE void log_info_ice_agent(struct ice_agent *ag) { } +INLINE void log_info_media(struct call_media *m) { +} #endif