diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 6a294a0ac..74bdb3700 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -2377,7 +2377,7 @@ static void ng_stats_endpoint(const ng_parser_t *parser, parser_arg dict, const if (!ep->address.family) return; parser->dict_add_string(dict, "family", ep->address.family->name); - parser->dict_add_str_dup(dict, "address", &STR(sockaddr_print_buf(&ep->address))); + parser->dict_add_str_dup(dict, "address", STR_PTR(sockaddr_print_buf(&ep->address))); parser->dict_add_int(dict, "port", ep->port); } @@ -2420,7 +2420,7 @@ static void ng_stats_stream(ng_command_ctx_t *ctx, parser_arg list, const struct if (ps->selected_sfd) { parser->dict_add_int(dict, "local port", ps->selected_sfd->socket.local.port); parser->dict_add_str_dup(dict, "local address", - &STR(sockaddr_print_buf(&ps->selected_sfd->socket.local.address))); + STR_PTR(sockaddr_print_buf(&ps->selected_sfd->socket.local.address))); parser->dict_add_string(dict, "family", ps->selected_sfd->socket.local.address.family->name); } ng_stats_endpoint(parser, parser->dict_add_dict(dict, "endpoint"), &ps->endpoint); diff --git a/daemon/control_ng.c b/daemon/control_ng.c index 4a1b054eb..1257edb75 100644 --- a/daemon/control_ng.c +++ b/daemon/control_ng.c @@ -301,7 +301,7 @@ static bool json_dict_contains(JsonNode *on, const char *ele) { static void json_dict_iter_fn(JsonObject *o, const char *key, JsonNode *val, void *arg) { void **ptrs = arg; void (*callback)(const ng_parser_t *, str *key, JsonNode *value, helper_arg) = ptrs[1]; - callback(ptrs[0], &STR(key), val, ptrs[2]); + callback(ptrs[0], STR_PTR(key), val, ptrs[2]); } static bool json_dict_iter(const ng_parser_t *parser, JsonNode *input, @@ -340,7 +340,7 @@ static void json_list_iter(const ng_parser_t *parser, JsonNode *list, { const char *s = json_node_get_string(n); if (s) - str_callback(&STR(s), i, arg); + str_callback(STR_PTR(s), i, arg); } else item_callback(parser, n, arg); diff --git a/daemon/control_ng_flags_parser.c b/daemon/control_ng_flags_parser.c index a338b6f76..620eaff4f 100644 --- a/daemon/control_ng_flags_parser.c +++ b/daemon/control_ng_flags_parser.c @@ -260,7 +260,7 @@ static bool parse_codec_to_dict(str * key, str * val, const char *cmp1, const ch return false; } - call_ng_codec_flags(&dummy_parser, &STR(dictstr), &s, flags); + call_ng_codec_flags(&dummy_parser, STR_PTR(dictstr), &s, flags); return true; } @@ -294,7 +294,7 @@ static void parse_transports(unsigned int transport, sdp_ng_flags *out) const char * val = transports[transport & 0x007]; if (!val) return; - call_ng_main_flags(&dummy_parser, &STR_CONST("transport-protocol"), &STR(val), out); + call_ng_main_flags(&dummy_parser, &STR_CONST("transport-protocol"), STR_PTR(val), out); } diff --git a/daemon/recording.c b/daemon/recording.c index ce3c20551..b4bad231b 100644 --- a/daemon/recording.c +++ b/daemon/recording.c @@ -368,7 +368,7 @@ void recording_start_daemon(call_t *call) { char rand_str[rand_bytes * 2 + 1]; rand_hex_str(rand_str, rand_bytes); g_autoptr(char) meta_prefix = g_strdup_printf("%s-%s", escaped_callid, rand_str); - call->recording_meta_prefix = call_str_cpy(&STR(meta_prefix)); + call->recording_meta_prefix = call_str_cpy(STR_PTR(meta_prefix)); call->recording_random_tag = call_str_cpy(&STR_CONST(rand_str)); } diff --git a/daemon/redis.c b/daemon/redis.c index 6c7bf8112..4b540e7db 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -2344,7 +2344,7 @@ err: str encstr = parser->escape(enc, d, l); \ parser->dict_add_str_dup(inner, a, &encstr); \ } while (0) -#define JSON_SET_SIMPLE_CSTR(a,d) parser->dict_add_str_dup(inner, a, &STR(d)) +#define JSON_SET_SIMPLE_CSTR(a,d) parser->dict_add_str_dup(inner, a, STR_PTR(d)) #define JSON_SET_SIMPLE_STR(a,d) parser->dict_add_str_dup(inner, a, d) static void json_update_crypto_params(const ng_parser_t *parser, parser_arg inner, const char *key, struct crypto_params *p) { diff --git a/daemon/sdp.c b/daemon/sdp.c index 059102555..3d4f4f0ee 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -351,7 +351,7 @@ static bool sdp_manipulate_remove(struct sdp_manipulations * sdp_manipulations, */ static bool sdp_manipulate_remove_c(const char *attr_name, const sdp_ng_flags *flags, enum media_type media_type) { struct sdp_manipulations *sdp_manipulations = sdp_manipulations_get_by_id(flags, media_type); - return sdp_manipulate_remove(sdp_manipulations, &STR(attr_name)); + return sdp_manipulate_remove(sdp_manipulations, STR_PTR(attr_name)); } /** @@ -417,7 +417,7 @@ void sdp_append_str_attr(GString *s, const sdp_ng_flags *flags, enum media_type INLINE void append_attr_to_gstring(GString *s, const char * name, const str * value, const sdp_ng_flags *flags, enum media_type media_type) { - append_str_attr_to_gstring(s, &STR(name), value, flags, media_type); + append_str_attr_to_gstring(s, STR_PTR(name), value, flags, media_type); } INLINE struct sdp_attribute *attr_get_by_id(struct sdp_attributes *a, enum attr_id id) { return t_hash_table_lookup(a->id_hash, &id); diff --git a/daemon/statistics.c b/daemon/statistics.c index fc0a53558..5c6054e58 100644 --- a/daemon/statistics.c +++ b/daemon/statistics.c @@ -973,10 +973,10 @@ const char *statistics_ng(ng_command_ctx_t *ctx) { m->int_value); else if (m->value_raw) parser->dict_add_str_dup(dict, parser->strdup(parser_ctx, m->label), - &STR(m->value_raw)); + STR_PTR(m->value_raw)); else parser->dict_add_str_dup(dict, parser->strdup(parser_ctx, m->label), - &STR(m->value_short)); + STR_PTR(m->value_short)); continue; } diff --git a/include/sdp.h b/include/sdp.h index 08e0ebad6..d8811d2c6 100644 --- a/include/sdp.h +++ b/include/sdp.h @@ -38,7 +38,7 @@ sdp_attr_print_f sdp_insert_monologue_attributes; void sdp_append_str_attr(GString *s, const sdp_ng_flags *flags, enum media_type media_type, const str *name, const char *fmt, ...) __attribute__ ((format (printf, 5, 6))); -#define sdp_append_attr(s, g, t, n, f, ...) sdp_append_str_attr(s, g, t, &STR(n), f, ##__VA_ARGS__) +#define sdp_append_attr(s, g, t, n, f, ...) sdp_append_str_attr(s, g, t, STR_PTR(n), f, ##__VA_ARGS__) void sdp_attr_free(struct sdp_attr *); sdp_origin *sdp_orig_dup(const sdp_origin *orig); diff --git a/lib/str.h b/lib/str.h index 3d15ec29e..51733d9e5 100644 --- a/lib/str.h +++ b/lib/str.h @@ -38,6 +38,7 @@ TYPED_GQUEUE(str, str) #define STR_EMPTY ((str) { "", 0 }) #define STR_CONST(s) ((str) { s, sizeof(s)-1 }) #define STR(s) ((str) { (char *) (s), (s) ? strlen(s) : 0 }) +#define STR_PTR(s) (&((str) { (char *) (s), (s) ? strlen(s) : 0 })) #define STR_NC(s) ((str) { (char *) (s), strlen(s) }) #define STR_GS(s) ((str) { (s)->str, (s)->len }) #define STR_LEN(s, len) ((str) { (char *) (s), len }) diff --git a/perf-tester/main.c b/perf-tester/main.c index 1aa1ebfb8..7e9667155 100644 --- a/perf-tester/main.c +++ b/perf-tester/main.c @@ -1929,10 +1929,10 @@ int main(int argc, char **argv) { if (!rtpe_poller) die("Failed to create poller"); - decoder_def = codec_find(&STR(source_codec), MT_AUDIO); + decoder_def = codec_find(STR_PTR(source_codec), MT_AUDIO); if (!decoder_def) die("Codec definition for source codec not found"); - encoder_def = codec_find(&STR(dest_codec), MT_AUDIO); + encoder_def = codec_find(STR_PTR(dest_codec), MT_AUDIO); if (!encoder_def) die("Codec definition for destination codec not found");