diff --git a/daemon/codec.c b/daemon/codec.c index 302d0853f..c7e8e27cd 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -2300,7 +2300,7 @@ static tc_code packet_dtmf(struct codec_ssrc_handler *ch, struct codec_ssrc_hand // provide an uninitialised buffer as potential output storage for DTMF char buf[sizeof(struct telephone_event_payload)]; - str ev_pl = STR_INIT_LEN(buf, sizeof(buf)); + str ev_pl = STR_LEN(buf, sizeof(buf)); int is_dtmf = dtmf_event_payload(&ev_pl, &ts, duration, &input_ch->dtmf_event, &input_ch->dtmf_events); @@ -4006,7 +4006,7 @@ void packet_encoded_packetize(AVPacket *pkt, struct codec_ssrc_handler *ch, stru char *buf = bufferpool_alloc(media_bufferpool, pkt_len); char *payload = buf + sizeof(struct rtp_header); // tell our packetizer how much we want - str inout = STR_INIT_LEN(payload, payload_len); + str inout = STR_LEN(payload, payload_len); // and request a packet if (in_pkt) ilogs(transcoding, LOG_DEBUG, "Adding %i bytes to packetizer", in_pkt->size); diff --git a/daemon/crypto.c b/daemon/crypto.c index 5f8ad32b0..38945c58e 100644 --- a/daemon/crypto.c +++ b/daemon/crypto.c @@ -446,7 +446,7 @@ static void prf_n(str *out, const unsigned char *key, const EVP_CIPHER *ciph, co memcpy(iv, x, 14); /* iv[14] = iv[15] = 0; := x << 16 */ ZERO(in); /* outputs the key stream */ - str_init_len(&in_s, (void *) in, out->len > 16 ? 32 : 16); + in_s = STR_LEN(in, out->len > 16 ? 32 : 16); aes_ctr_no_ctx(o, &in_s, key, ciph, iv); memcpy(out->s, o, out->len); diff --git a/daemon/ice.c b/daemon/ice.c index 87a07cd79..f053bc4fe 100644 --- a/daemon/ice.c +++ b/daemon/ice.c @@ -1555,7 +1555,7 @@ static void create_random_ice_string(call_t *call, str *s, int len) { } void ice_foundation(str *s) { - str_init_len(s, malloc(ICE_FOUNDATION_LENGTH), ICE_FOUNDATION_LENGTH); + *s = STR_LEN(malloc(ICE_FOUNDATION_LENGTH), ICE_FOUNDATION_LENGTH); random_ice_string(s->s, ICE_FOUNDATION_LENGTH); } diff --git a/daemon/jitter_buffer.c b/daemon/jitter_buffer.c index a1ad6a3bc..a6eae8b02 100644 --- a/daemon/jitter_buffer.c +++ b/daemon/jitter_buffer.c @@ -117,7 +117,7 @@ static struct jb_packet* get_jb_packet(struct media_packet *mp, const str *s) { p->buf = buf; media_packet_copy(&p->mp, mp); - str_init_len(&p->mp.raw, buf + RTP_BUFFER_HEAD_ROOM, s->len); + p->mp.raw = STR_LEN(buf + RTP_BUFFER_HEAD_ROOM, s->len); memcpy(p->mp.raw.s, s->s, s->len); return p; diff --git a/daemon/media_player.c b/daemon/media_player.c index a6b745dc4..6e6c3982e 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -692,7 +692,7 @@ static void media_player_cache_packet(struct media_player_cache_entry *entry, ch .rtp = &rtp, .cache_entry = entry, }; - str_init_len(&packet.raw, buf, len); + packet.raw = STR_LEN(buf, len); packet.payload = packet.raw; entry->coder.handler->handler_func(entry->coder.handler, &packet); @@ -946,7 +946,7 @@ void media_player_add_packet(struct media_player *mp, char *buf, size_t len, .rtp = &rtp, .ssrc_out = mp->ssrc_out, }; - str_init_len(&packet.raw, buf, len); + packet.raw = STR_LEN(buf, len); packet.payload = packet.raw; mp->coder.handler->handler_func(mp->coder.handler, &packet); @@ -1362,7 +1362,7 @@ success:; goto err; } - str blob = STR_INIT_LEN(row[0], lengths[0]); + str blob = STR_LEN(row[0], lengths[0]); mp_cached_code ret = __media_player_init_blob_id(mp, &blob, opts, id, dst_pt); mysql_free_result(res); diff --git a/daemon/media_socket.c b/daemon/media_socket.c index 9191d16c1..daa9075f6 100644 --- a/daemon/media_socket.c +++ b/daemon/media_socket.c @@ -3049,7 +3049,7 @@ restart: if (ret >= MAX_RTP_PACKET_SIZE) ilog(LOG_WARNING | LOG_FLAG_LIMIT, "UDP packet possibly truncated"); - str_init_len(&phc.s, buf + RTP_BUFFER_HEAD_ROOM, ret); + phc.s = STR_LEN(buf + RTP_BUFFER_HEAD_ROOM, ret); __stream_fd_readable(&phc); @@ -3095,7 +3095,7 @@ static void stream_fd_recv(struct obj *obj, char *buf, size_t len, struct sockad ZERO(phc); phc.mp.sfd = sfd; sfd->socket.family->sockaddr2endpoint(&phc.mp.fsin, sa); - str_init_len(&phc.s, buf, len); + phc.s = STR_LEN(buf, len); __stream_fd_readable(&phc); diff --git a/daemon/redis.c b/daemon/redis.c index 684cfdadb..bbba6cfc7 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -385,7 +385,7 @@ void on_redis_notification(redisAsyncContext *actx, void *reply, void *privdata) goto err; // format: __keyspace@__: - str_init_len(&keyspace_id, rr->element[2]->str, rr->element[2]->len); + keyspace_id = STR_LEN(rr->element[2]->str, rr->element[2]->len); if (str_shift_cmp(&keyspace_id, "__keyspace@")) goto err; @@ -2215,7 +2215,7 @@ static void restore_thread(void *call_p, void *ctx_p) { struct thread_ctx *ctx = ctx_p; redisReply *call = call_p; struct redis *r; - str callid = STR_INIT_LEN(call->str, call->len); + str callid = STR_LEN(call->str, call->len); rlog(LOG_DEBUG, "Processing call ID '%s%.*s%s' from Redis", FMT_M(REDIS_FMT(call))); diff --git a/daemon/rtcp.c b/daemon/rtcp.c index d223a0e36..43da24bd3 100644 --- a/daemon/rtcp.c +++ b/daemon/rtcp.c @@ -556,7 +556,7 @@ static int rtcp_rr(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_c static int rtcp_sdes(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_ctx) { CAH(sdes_list_start, el->sdes); - str comp_s = STR_INIT_LEN(el->sdes->chunks, el->len - sizeof(el->sdes->header)); + str comp_s = STR_LEN(el->sdes->chunks, el->len - sizeof(el->sdes->header)); int i = 0; while (1) { struct sdes_chunk *sdes_chunk = (struct sdes_chunk *) comp_s.s; @@ -614,7 +614,7 @@ static void xr_voip_metrics(struct xr_rb_voip_metrics *rb, struct rtcp_process_c static int rtcp_xr(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_ctx) { CAH(common, el->rtcp_packet); - str comp_s = STR_INIT_LEN(el->buf + sizeof(el->xr->rtcp), el->len - sizeof(el->xr->rtcp)); + str comp_s = STR_LEN(el->buf + sizeof(el->xr->rtcp), el->len - sizeof(el->xr->rtcp)); while (1) { struct xr_report_block *rb = (void *) comp_s.s; if (comp_s.len < sizeof(*rb)) @@ -1603,7 +1603,7 @@ void rtcp_send_report(struct call_media *media, struct ssrc_ctx *ssrc_out) { if (crypt_handler && crypt_handler->out->rtcp_crypt) { g_string_set_size(sr, sr->len + RTP_BUFFER_TAIL_ROOM); - rtcp_packet = STR_INIT_LEN(sr->str, sr->len - RTP_BUFFER_TAIL_ROOM); + rtcp_packet = STR_LEN(sr->str, sr->len - RTP_BUFFER_TAIL_ROOM); crypt_handler->out->rtcp_crypt(&rtcp_packet, ps, ssrc_out); } diff --git a/daemon/rtp.c b/daemon/rtp.c index c3ae8f5bd..c2fc9d3c1 100644 --- a/daemon/rtp.c +++ b/daemon/rtp.c @@ -286,7 +286,7 @@ int srtp_payloads(str *to_auth, str *to_decrypt, str *auth_tag, str *mki, if (to_decrypt->len < auth_len) goto error; - str_init_len(auth_tag, to_decrypt->s + to_decrypt->len - auth_len, auth_len); + *auth_tag = STR_LEN(to_decrypt->s + to_decrypt->len - auth_len, auth_len); to_decrypt->len -= auth_len; to_auth->len -= auth_len; } @@ -298,7 +298,7 @@ int srtp_payloads(str *to_auth, str *to_decrypt, str *auth_tag, str *mki, goto error; if (mki) - str_init_len(mki, to_decrypt->s - mki_len, mki_len); + *mki = STR_LEN(to_decrypt->s - mki_len, mki_len); to_decrypt->len -= mki_len; to_auth->len -= mki_len; } diff --git a/daemon/sdp.c b/daemon/sdp.c index 54cc8e2f8..ba32b4fae 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -1282,7 +1282,7 @@ int sdp_parse(str *body, sdp_sessions_q *sessions, const sdp_ng_flags *flags) { goto new_session; // allowed for trickle ICE SDP fragments } - str value_str = STR_INIT_LEN(value, line_end - value); + str value_str = STR_LEN(value, line_end - value); switch (b[0]) { case 'v': @@ -2382,7 +2382,7 @@ void sdp_chopper_destroy_ret(struct sdp_chopper *chop, str *ret) { if (chop->output) { size_t len = chop->output->len; char *s = g_string_free(chop->output, FALSE); - str_init_len(ret, s, len); + *ret = STR_LEN(s, len); chop->output = NULL; } sdp_chopper_destroy(chop); @@ -2993,7 +2993,7 @@ static void generic_append_attr_to_gstring(GString *s, const str * attr, char se g_string_append_len(s, value->s, value->len); // check if the complete attribute string is marked for removal ... - str complete = STR_INIT_LEN(s->str + attr_start, s->len - attr_start); + str complete = STR_LEN(s->str + attr_start, s->len - attr_start); if (sdp_manipulate_remove(sdp_manipulations, &complete)) { // rewind and bail diff --git a/daemon/t38.c b/daemon/t38.c index f723b19a0..7edf25e81 100644 --- a/daemon/t38.c +++ b/daemon/t38.c @@ -105,7 +105,7 @@ static int t38_gateway_handler(t38_core_state_t *stat, void *user_data, const ui g_string_append_len(s, (void *) &seq, 2); // add primary IFP packet - str buf = STR_INIT_LEN(b, len); + str buf = STR_LEN(b, len); __add_udptl(s, &buf); // add error correction packets diff --git a/daemon/websocket.c b/daemon/websocket.c index 9d98c7de7..01fc9a944 100644 --- a/daemon/websocket.c +++ b/daemon/websocket.c @@ -458,7 +458,7 @@ static const char *websocket_http_cli(struct websocket_message *wm) { static const char *websocket_cli_process(struct websocket_message *wm) { ilogs(http, LOG_DEBUG, "Processing websocket CLI req '%s'", wm->body->str); - str uri_cmd = STR_INIT_LEN(wm->body->str, wm->body->len); + str uri_cmd = STR_LEN(wm->body->str, wm->body->len); struct cli_writer cw = { .cw_printf = websocket_queue_printf, @@ -513,7 +513,7 @@ static const char *websocket_ng_process_generic(struct websocket_message *wm, // steal body and initialise buf->body = wm->body; wm->body = g_string_new(""); - str_init_len(&buf->cmd, buf->body->str, buf->body->len); + buf->cmd = STR_LEN(buf->body->str, buf->body->len); buf->endpoint = wm->wc->endpoint; cb(&buf->cmd, &buf->endpoint, buf->addr, NULL, websocket_ng_send_ws, wm->wc, &buf->obj); @@ -540,7 +540,7 @@ static const char *websocket_http_ng_generic(struct websocket_message *wm, // steal body and initialise buf->body = wm->body; wm->body = g_string_new(""); - str_init_len(&buf->cmd, buf->body->str, buf->body->len); + buf->cmd = STR_LEN(buf->body->str, buf->body->len); buf->endpoint = wm->wc->endpoint; if (cb(&buf->cmd, &buf->endpoint, buf->addr, NULL, websocket_ng_send_http, wm->wc, diff --git a/lib/str.h b/lib/str.h index c563be8ea..3eb161bc3 100644 --- a/lib/str.h +++ b/lib/str.h @@ -39,7 +39,7 @@ TYPED_GQUEUE(str, str) #define STR_CONST_INIT(s) ((str) { s, sizeof(s)-1 }) #define STR(s) ((str) { (char *) (s), (s) ? strlen(s) : 0 }) #define STR_INIT_GS(s) ((str) { (s)->str, (s)->len }) -#define STR_INIT_LEN(s, len) ((str) { (char *) (s), len }) +#define STR_LEN(s, len) ((str) { (char *) (s), len }) #define STR_INIT_DUP(s) ((str) { g_strdup(s), strlen(s) }) #define STR_CONST_INIT_BUF(buf) ((str) { (char *) &buf, sizeof(buf) }) @@ -83,9 +83,6 @@ ACCESS(read_only, 2) INLINE int str_cmp_str0(const str *a, const str *b); /* inits a str object from any binary string. returns out */ __attribute__((nonnull(1, 2))) -ACCESS(write_only, 1) -INLINE str *str_init_len(str *out, char *s, size_t len); -__attribute__((nonnull(1, 2))) INLINE str *str_init_len_assert_len(str *out, char *s, size_t buflen, size_t len); #define str_init_len_assert(out, s, len) str_init_len_assert_len(out, s, sizeof(s), len) /* inits a str object from a regular string and duplicates the contents. returns out */ @@ -216,7 +213,7 @@ INLINE int str_shift_ret(str *s, size_t len, str *ret) { if (s->len < len) return -1; if (ret) - str_init_len(ret, s->s, len); + *ret = STR_LEN(s->s, len); s->s += len; s->len -= len; return 0; @@ -301,14 +298,10 @@ INLINE int str_cmp_str0(const str *a, const str *b) { } return str_cmp_str(a, b); } -INLINE str *str_init_len(str *out, char *s, size_t len) { - out->s = s; - out->len = len; - return out; -} INLINE str *str_init_len_assert_len(str *out, char *s, size_t buflen, size_t len) { assert(buflen >= len); - return str_init_len(out, s, len); + *out = STR_LEN(s, len); + return out; } INLINE str *str_init_dup(str *out, const char *s) { out->s = s ? g_strdup(s) : NULL; diff --git a/perf-tester/main.c b/perf-tester/main.c index bc91300fd..1aa1ebfb8 100644 --- a/perf-tester/main.c +++ b/perf-tester/main.c @@ -365,7 +365,7 @@ static void readable(int fd, void *o) { s->fixture_idx = 0; str frame; - str_init_len(&frame, (char *) data->data, data->size); + frame = STR_LEN(data->data, data->size); if (!s->chain) decoder_input_data(s->decoder, &frame, s->input_ts, got_frame, s, NULL); diff --git a/recording-daemon/decoder.c b/recording-daemon/decoder.c index 56e431567..0a0632c93 100644 --- a/recording-daemon/decoder.c +++ b/recording-daemon/decoder.c @@ -32,7 +32,7 @@ decode_t *decoder_new(const char *payload_str, const char *format, int ptime, ou return NULL; } - str name = STR_INIT_LEN(payload_str, slash - payload_str); + str name = STR_LEN(payload_str, slash - payload_str); int clockrate = atoi(slash + 1); if (clockrate <= 0) { ilog(LOG_ERR, "Invalid clock rate %i (parsed from '%.20s'/'%.20s')", diff --git a/recording-daemon/output.c b/recording-daemon/output.c index 0c626bc44..ec594e891 100644 --- a/recording-daemon/output.c +++ b/recording-daemon/output.c @@ -204,7 +204,7 @@ static output_t *output_new(const char *path, const metafile_t *mf, const char * ilog(LOG_ERR, "Missing ending brace '}' in file name pattern"); break; } - str fmt = STR_INIT_LEN((char *) p, end - p); + str fmt = STR_LEN((char *) p, end - p); p = end; // skip over {...} output_append_str_from_ht(f, mf->metadata_parsed, &fmt); break; diff --git a/recording-daemon/packet.c b/recording-daemon/packet.c index 920bff2c2..7a8e4f12e 100644 --- a/recording-daemon/packet.c +++ b/recording-daemon/packet.c @@ -382,7 +382,7 @@ void packet_process(stream_t *stream, unsigned char *buf, unsigned len) { packet->buffer = buf; // handing it over // XXX more checking here - str bufstr = STR_INIT_LEN(packet->buffer, len); + str bufstr = STR_LEN(packet->buffer, len); packet->ip = (void *) bufstr.s; // XXX kernel already does this - add metadata? if (packet->ip->version == 4) { diff --git a/t/test-bitstr.c b/t/test-bitstr.c index d3fecc97f..9ea5ba855 100644 --- a/t/test-bitstr.c +++ b/t/test-bitstr.c @@ -39,7 +39,7 @@ int do_test(const char *input, unsigned int input_len, { char in_buf[input_len]; memcpy(in_buf, input, input_len); - str inp = STR_INIT_LEN(in_buf, input_len); + str inp = STR_LEN(in_buf, input_len); bitstr inp_bs; bitstr_init(&inp_bs, &inp); diff --git a/t/test-transcode.c b/t/test-transcode.c index 4e8bf7932..075c8eac3 100644 --- a/t/test-transcode.c +++ b/t/test-transcode.c @@ -1369,7 +1369,7 @@ int main(void) { // CN transcoding rtpe_config.silence_detect_int = 10 << 16; - str_init_len(&rtpe_config.cn_payload, "\x40", 1); + rtpe_config.cn_payload = STR_LEN("\x40", 1); // CN transcoding - forward start(); sdp_pt(8, PCMA, 8000);