From c109644feaff38c35a716dd833a649db83a876f0 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 31 Aug 2022 12:56:33 -0400 Subject: [PATCH] TT#189201 change block/silence media flags to bool This makes it possible to refactor and simplify the interface functions, as pointers and offsets can't be utilised with bit fields. Change-Id: I70f1ac0eca7d2ccf8e8d5f5794580163f3f5b7ad --- daemon/call_interfaces.c | 20 ++++++++++---------- daemon/redis.c | 8 ++++---- include/call.h | 10 ++++++---- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 4b68ef026..69fd689d5 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -2658,12 +2658,12 @@ const char *call_block_media_ng(bencode_item_t *input, bencode_item_t *output) { if (monologue) { ilog(LOG_INFO, "Blocking directional media (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); - monologue->block_media = 1; + monologue->block_media = true; __monologue_unkernelize(monologue); } else { ilog(LOG_INFO, "Blocking media (entire call)"); - call->block_media = 1; + call->block_media = true; __call_unkernelize(call); } @@ -2683,16 +2683,16 @@ const char *call_unblock_media_ng(bencode_item_t *input, bencode_item_t *output) if (monologue) { ilog(LOG_INFO, "Unblocking directional media (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); - monologue->block_media = 0; + monologue->block_media = false; __monologue_unkernelize(monologue); } else { ilog(LOG_INFO, "Unblocking media (entire call)"); - call->block_media = 0; + call->block_media = false; if (flags.all) { for (GList *l = call->monologues.head; l; l = l->next) { monologue = l->data; - monologue->block_media = 0; + monologue->block_media = false; } } __call_unkernelize(call); @@ -2715,12 +2715,12 @@ const char *call_silence_media_ng(bencode_item_t *input, bencode_item_t *output) if (monologue) { ilog(LOG_INFO, "Silencing directional media (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); - monologue->silence_media = 1; + monologue->silence_media = true; __monologue_unkernelize(monologue); } else { ilog(LOG_INFO, "Blocking media (entire call)"); - call->silence_media = 1; + call->silence_media = true; __call_unkernelize(call); } @@ -2740,16 +2740,16 @@ const char *call_unsilence_media_ng(bencode_item_t *input, bencode_item_t *outpu if (monologue) { ilog(LOG_INFO, "Unsilencing directional media (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); - monologue->silence_media = 0; + monologue->silence_media = false; __monologue_unkernelize(monologue); } else { ilog(LOG_INFO, "Unsilencing media (entire call)"); - call->silence_media = 0; + call->silence_media = false; if (flags.all) { for (GList *l = call->monologues.head; l; l = l->next) { monologue = l->data; - monologue->silence_media = 0; + monologue->silence_media = false; } } __call_unkernelize(call); diff --git a/daemon/redis.c b/daemon/redis.c index c508f5924..5b8175d97 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -1482,7 +1482,7 @@ static int redis_tags(struct call *c, struct redis_list *tags, JsonReader *root_ if (!redis_hash_get_int(&ii, rh, "block_dtmf")) ml->block_dtmf = ii; if (!redis_hash_get_int(&ii, rh, "block_media")) - ml->block_media = ii ? 1 : 0; + ml->block_media = ii ? true : false; if (redis_hash_get_str(&s, rh, "logical_intf") || !(ml->logical_intf = get_logical_interface(&s, NULL, 0))) @@ -2018,7 +2018,7 @@ static void json_restore_call(struct redis *r, const str *callid, bool foreign) if (!redis_hash_get_int(&i, &call, "block_dtmf")) c->block_dtmf = i; if (!redis_hash_get_int(&i, &call, "block_media")) - c->block_media = i ? 1 : 0; + c->block_media = i ? true : false; err = "missing 'redis_hosted_db' value"; if (redis_hash_get_unsigned((unsigned int *) &c->redis_hosted_db, &call, "redis_hosted_db")) @@ -2346,7 +2346,7 @@ char* redis_encode_json(struct call *c) { JSON_SET_SIMPLE("redis_hosted_db","%u",c->redis_hosted_db); JSON_SET_SIMPLE_STR("recording_metadata",&c->metadata); JSON_SET_SIMPLE("block_dtmf","%i", c->block_dtmf); - JSON_SET_SIMPLE("block_media","%i",c->block_media ? 1 : 0); + JSON_SET_SIMPLE("block_media","%i",c->block_media); if ((rec = c->recording)) { JSON_SET_SIMPLE_CSTR("recording_meta_prefix",rec->meta_prefix); @@ -2467,7 +2467,7 @@ char* redis_encode_json(struct call *c) { JSON_SET_SIMPLE("created","%llu",(long long unsigned) ml->created); JSON_SET_SIMPLE("deleted","%llu",(long long unsigned) ml->deleted); JSON_SET_SIMPLE("block_dtmf","%i", ml->block_dtmf); - JSON_SET_SIMPLE("block_media","%i",ml->block_media ? 1 : 0); + JSON_SET_SIMPLE("block_media","%i",ml->block_media); if (ml->logical_intf) JSON_SET_SIMPLE_STR("logical_intf", &ml->logical_intf->name); diff --git a/include/call.h b/include/call.h index 99946aee0..2af403da7 100644 --- a/include/call.h +++ b/include/call.h @@ -485,8 +485,9 @@ struct call_monologue { unsigned int block_dtmf_trigger_end_ms; unsigned int dtmf_delay; - unsigned int block_media:1; - unsigned int silence_media:1; + bool block_media; + bool silence_media; + unsigned int rec_forwarding:1; unsigned int inject_dtmf:1; unsigned int detect_dtmf:1; @@ -580,6 +581,9 @@ struct call { int cpu_affinity; enum block_dtmf_mode block_dtmf; + bool block_media; + bool silence_media; + // ipv4/ipv6 media flags unsigned int is_ipv4_media_offer:1; unsigned int is_ipv6_media_offer:1; @@ -587,8 +591,6 @@ struct call { unsigned int is_ipv6_media_answer:1; unsigned int is_call_media_counted:1; - unsigned int block_media:1; - unsigned int silence_media:1; unsigned int recording_on:1; unsigned int rec_forwarding:1; unsigned int drop_traffic:1;