From b57f80b856a2ffd5a279d2b47fea200847e83f9f Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Tue, 2 Jan 2024 14:26:59 -0500 Subject: [PATCH] MT#59069 refactor field/flag printing Use a generic function to update call/monologue fields from a given string, and print an update to the recording metafile. Functional no-op. Change-Id: I23dbfff0646145809c37ee9270bce6983b136dcc --- daemon/recording.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/daemon/recording.c b/daemon/recording.c index 4cc9dee92..2af3677f5 100644 --- a/daemon/recording.c +++ b/daemon/recording.c @@ -270,17 +270,25 @@ static int rec_pcap_create_spool_dir(const char *spoolpath) { } // lock must be held -void update_metadata_call(call_t *call, const sdp_ng_flags *flags) { +static void update_call_field(call_t *call, str *dst_field, const str *src_field, const char *meta_fmt, ...) { if (!call) return; - if (flags->metadata.len && str_cmp_str(&flags->metadata, &call->metadata)) { - call_str_cpy(call, &call->metadata, &flags->metadata); - if (call->recording) - recording_meta_chunk(call->recording, "METADATA", &flags->metadata); + if (src_field->len && str_cmp_str(src_field, dst_field)) { + call_str_cpy(call, dst_field, src_field); + if (call->recording) { + va_list ap; + va_start(ap, meta_fmt); + vappend_meta_chunk_str(call->recording, src_field, meta_fmt, ap); + va_end(ap); + } } } +void update_metadata_call(call_t *call, const sdp_ng_flags *flags) { + update_call_field(call, &call->metadata, &flags->metadata, "METADATA"); +} + // lock must be held void update_metadata_monologue(struct call_monologue *ml, const sdp_ng_flags *flags) { if (!ml) @@ -288,11 +296,7 @@ void update_metadata_monologue(struct call_monologue *ml, const sdp_ng_flags *fl call_t *call = ml->call; - if (flags->metadata.len && str_cmp_str(&flags->metadata, &ml->metadata)) { - call_str_cpy(call, &ml->metadata, &flags->metadata); - if (call->recording) - append_meta_chunk_str(call->recording, &flags->metadata, "METADATA-TAG %u", ml->unique_id); - } + update_call_field(call, &ml->metadata, &flags->metadata, "METADATA-TAG %u", ml->unique_id); update_metadata_call(call, flags); }