From 1745d34a69629a127da010474fadb2c88db26278 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 11 Sep 2026 11:02:29 -0400 Subject: [PATCH] MT#55283 lightweight call ID Change-Id: I84a687a990ed9acdcdca04babfab99d79618a3b6 --- daemon/call.c | 7 +++++-- daemon/redis.c | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index be5e46eac..be3aa4f22 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -5474,6 +5474,7 @@ void __monologue_free(struct call_monologue *m) { memory_arena_free_lw(m->label.s); memory_arena_free_lw(m->metadata.s); memory_arena_free_lw(m->tag.s); + memory_arena_free_lw(m->call_id.s); memory_arena_free_lw(m); } @@ -5525,6 +5526,8 @@ static void __call_free(call_t *c) { memory_arena_free_lw(ps); } + memory_arena_free_lw(c->callid.s); + memory_arena = NULL; arena_free(&c->buffer); @@ -5548,7 +5551,7 @@ static call_t *call_create(const str *callid) { c->sdps = str_ml_ht_new(); c->endpoints = endpoint_ml_ht_new(); call_memory_arena_set(c); - c->callid = call_str_cpy(callid); + c->callid = memory_arena_str_cpy_lw(callid); c->created = rtpe_now; c->dtls_cert = dtls_cert(); c->tos = rtpe_config.default_tos; @@ -5892,7 +5895,7 @@ struct call_monologue *__monologue_create(call_t *call, const str *callid) { ret = iuid_alloc(&call->monologues); ret->call = call; - ret->call_id = call_str_cpy(callid); + ret->call_id = memory_arena_str_cpy_lw(callid); ret->created_us = rtpe_now; ret->associated_tags = g_hash_table_new(g_direct_hash, g_direct_equal); ret->medias = medias_arr_new(); diff --git a/daemon/redis.c b/daemon/redis.c index 6646295fe..86afcb828 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -1658,7 +1658,7 @@ static int redis_tags(call_t *c, struct redis_list *tags, parser_arg arg) { if (!redis_hash_get_str(&s, rh, "tag")) __monologue_tag(ml, &s); if (!redis_hash_get_str(&s, rh, "call_id")) - ml->call_id = call_str_cpy(&s); + memory_arena_str_cpy_free(&ml->call_id, &s); if (!redis_hash_get_str(&s, rh, "via-branch")) __monologue_viabranch(ml, &s); if (!redis_hash_get_str(&s, rh, "label"))