diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 70d5e3ac7..cc43d08e7 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -2543,7 +2543,7 @@ static const char *call_offer_answer_ng(ng_command_ctx_t *ctx, const char* addr) sdp = call_str_cpy(&flags.sdp); errstr = "Failed to parse SDP"; - if (sdp_parse(&sdp, &parsed, &flags)) + if (!sdp_parse(&sdp, &parsed, &flags)) goto out; if (flags.loop_protect && sdp_is_duplicate(&parsed)) { @@ -2554,7 +2554,7 @@ static const char *call_offer_answer_ng(ng_command_ctx_t *ctx, const char* addr) } errstr = "Incomplete SDP specification"; - if (sdp_streams(&parsed, &streams, &flags)) + if (!sdp_streams(&parsed, &streams, &flags)) goto out; // SDP fragments for trickle ICE must always operate on an existing call @@ -4040,10 +4040,10 @@ const char *call_publish_ng(ng_command_ctx_t *ctx, const char *addr) { sdp_in = call_str_cpy(&flags.sdp); - if (sdp_parse(&sdp_in, &parsed, &flags)) + if (!sdp_parse(&sdp_in, &parsed, &flags)) return "Failed to parse SDP"; - if (sdp_streams(&parsed, &streams, &flags)) + if (!sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; if (trickle_ice_update(ctx->ngbuf, call, &flags, &streams)) @@ -4200,10 +4200,10 @@ const char *call_subscribe_answer_ng(ng_command_ctx_t *ctx) { if (!call) return "Unknown call-ID"; - if (sdp_parse(&flags.sdp, &parsed, &flags)) + if (!sdp_parse(&flags.sdp, &parsed, &flags)) return "Failed to parse SDP"; - if (sdp_streams(&parsed, &streams, &flags)) + if (!sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; if (trickle_ice_update(ctx->ngbuf, call, &flags, &streams)) diff --git a/daemon/janus.c b/daemon/janus.c index c78750c78..980c8a467 100644 --- a/daemon/janus.c +++ b/daemon/janus.c @@ -854,9 +854,9 @@ static const char *janus_videoroom_configure(struct websocket_message *wm, struc g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; call_ng_flags_init(&flags, OP_PUBLISH); *retcode = 512; - if (sdp_parse(&sdp_in, &parsed, &flags)) + if (!sdp_parse(&sdp_in, &parsed, &flags)) return "Failed to parse SDP"; - if (sdp_streams(&parsed, &streams, &flags)) + if (!sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; ml = janus_get_monologue(handle->id, call, call_get_or_create_monologue); @@ -967,11 +967,11 @@ static const char *janus_videoroom_start(struct websocket_message *wm, struct ja g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; call_ng_flags_init(&flags, OP_PUBLISH); *retcode = 512; - if (sdp_parse(&sdp_in, &parsed, &flags)) + if (!sdp_parse(&sdp_in, &parsed, &flags)) return "Failed to parse SDP"; *retcode = 512; - if (sdp_streams(&parsed, &streams, &flags)) + if (!sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; *retcode = 456; diff --git a/daemon/sdp.c b/daemon/sdp.c index da655db1e..2ed3a2985 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -1298,7 +1298,7 @@ static bool parse_attribute(struct sdp_attribute *a) { return ret; } -int sdp_parse(str *body, sdp_sessions_q *sessions, const sdp_ng_flags *flags) { +bool sdp_parse(str *body, sdp_sessions_q *sessions, const sdp_ng_flags *flags) { str b; struct sdp_session *session = NULL; struct sdp_media *media = NULL; @@ -1485,12 +1485,12 @@ new_session: adj_s->len = b.s - adj_s->s; } - return 0; + return true; error: ilog(LOG_WARNING, "Error parsing SDP at offset %zu: %s", (size_t) (b.s - body->s), errstr); sdp_sessions_clear(sessions); - return -1; + return false; } static void attr_free(struct sdp_attribute *p) { @@ -1883,7 +1883,7 @@ static void sdp_attr_append_other(sdp_attr_q *dst, struct sdp_attributes *src) { } /* XXX split this function up */ -int sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_flags *flags) { +bool sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_flags *flags) { struct sdp_session *session; struct sdp_media *media; struct stream_params *sp; @@ -2104,12 +2104,12 @@ next: } } - return 0; + return true; error: ilog(LOG_WARNING, "Failed to extract streams from SDP: %s", errstr); g_free(sp); - return -1; + return false; } void sdp_streams_clear(sdp_streams_q *q) { diff --git a/include/sdp.h b/include/sdp.h index 3ac9c473b..504d61017 100644 --- a/include/sdp.h +++ b/include/sdp.h @@ -44,8 +44,8 @@ void sdp_attr_free(struct sdp_attr *); sdp_origin *sdp_orig_dup(const sdp_origin *orig); void sdp_orig_free(sdp_origin *o); -int sdp_parse(str *body, sdp_sessions_q *sessions, const sdp_ng_flags *); -int sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_flags *); +bool sdp_parse(str *body, sdp_sessions_q *sessions, const sdp_ng_flags *); +bool sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_flags *); void sdp_streams_clear(sdp_streams_q *); void sdp_sessions_clear(sdp_sessions_q *sessions); int sdp_is_duplicate(sdp_sessions_q *sessions);