From 3cce4ac230cf52fbd4b6971981d39442599eaae4 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 12 Feb 2025 10:37:16 -0400 Subject: [PATCH] MT#55283 convert sockaddr_parse_any_str to bool Change-Id: Iaf9179bf1f55774bc9c63fd1238155f7ff3b7570 --- daemon/call_interfaces.c | 6 +++--- daemon/redis.c | 2 +- daemon/sdp.c | 6 +++--- lib/socket.c | 8 ++++---- lib/socket.h | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 608f8000d..f6436e62c 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -1880,7 +1880,7 @@ void call_ng_main_flags(const ng_parser_t *parser, str *key, parser_arg value, h break; case CSH_LOOKUP("media address"): case CSH_LOOKUP("media-address"): - if (sockaddr_parse_any_str(&out->media_address, &s)) + if (!sockaddr_parse_any_str(&out->media_address, &s)) ilog(LOG_WARN, "Could not parse 'media-address'"); break; case CSH_LOOKUP("media echo"): @@ -2212,7 +2212,7 @@ void call_ng_main_flags(const ng_parser_t *parser, str *key, parser_arg value, h break; case CSH_LOOKUP("xmlrpc-callback"): case CSH_LOOKUP("XMLRPC-callback"): - if (sockaddr_parse_any_str(&out->xmlrpc_callback, &s)) + if (!sockaddr_parse_any_str(&out->xmlrpc_callback, &s)) ilog(LOG_WARN, "Failed to parse 'xmlrpc-callback' address '" STR_FORMAT "'", STR_FMT(&s)); break; @@ -3166,7 +3166,7 @@ static const char *media_block_match1(call_t *call, struct call_monologue **mono } else if (flags->address.s) { sockaddr_t addr; - if (sockaddr_parse_any_str(&addr, &flags->address)) + if (!sockaddr_parse_any_str(&addr, &flags->address)) return "Failed to parse network address"; // walk our structures to find a matching stream for (__auto_type l = call->monologues.head; l; l = l->next) { diff --git a/daemon/redis.c b/daemon/redis.c index 1744af5d5..85129eaa4 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -2126,7 +2126,7 @@ static void json_restore_call(struct redis *r, const str *callid, bool foreign) c->created_from = call_strdup_str(&id); if (!redis_hash_get_str(&id, &call, "created_from_addr")) { err = "failed to parse 'created_from_addr'"; - if (sockaddr_parse_any_str(&c->created_from_addr, &id)) + if (!sockaddr_parse_any_str(&c->created_from_addr, &id)) goto err8; } if (!redis_hash_get_int(&i, &call, "block_dtmf")) diff --git a/daemon/sdp.c b/daemon/sdp.c index e1f912fd4..8fadeb4c3 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -446,7 +446,7 @@ static int __parse_address(sockaddr_t *out, str *network_type, str *address_type } if (!address_type->len) { - if (sockaddr_parse_any_str(out, address)) + if (!sockaddr_parse_any_str(out, address)) return -1; return 0; } @@ -771,7 +771,7 @@ static int parse_attribute_candidate(struct sdp_attribute *output, bool extended if (ep == c->priority_str.s) return -1; - if (sockaddr_parse_any_str(&c->cand_parsed.endpoint.address, &c->address_str)) + if (!sockaddr_parse_any_str(&c->cand_parsed.endpoint.address, &c->address_str)) return 0; c->cand_parsed.endpoint.port = strtoul(c->port_str.s, &ep, 10); @@ -797,7 +797,7 @@ static int parse_attribute_candidate(struct sdp_attribute *output, bool extended if (str_cmp(&c->rport_str, "rport")) return -1; - if (sockaddr_parse_any_str(&c->cand_parsed.related.address, &c->related_address_str)) + if (!sockaddr_parse_any_str(&c->cand_parsed.related.address, &c->related_address_str)) return 0; c->cand_parsed.related.port = strtoul(c->related_port_str.s, &ep, 10); diff --git a/lib/socket.c b/lib/socket.c index a2a988a09..9ed075ed2 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -561,14 +561,14 @@ bool sockaddr_parse_any(sockaddr_t *dst, const char *src) { } return false; } -int sockaddr_parse_any_str(sockaddr_t *dst, const str *src) { +bool sockaddr_parse_any_str(sockaddr_t *dst, const str *src) { char buf[64]; if (!src || !src->s) - return -1; + return false; if (src->len >= sizeof(buf)) - return -1; + return false; sprintf(buf, STR_FORMAT, STR_FMT(src)); - return sockaddr_parse_any(dst, buf) ? 0 : -1; + return sockaddr_parse_any(dst, buf); } int sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src) { char buf[64]; diff --git a/lib/socket.h b/lib/socket.h index cf23382ef..14af574ac 100644 --- a/lib/socket.h +++ b/lib/socket.h @@ -287,7 +287,7 @@ void dummy_socket(socket_t *r, const sockaddr_t *); sockfamily_t *get_socket_family_rfc(const str *s); sockfamily_t *__get_socket_family_enum(enum socket_families); bool sockaddr_parse_any(sockaddr_t *dst, const char *src); -int sockaddr_parse_any_str(sockaddr_t *dst, const str *src); +bool sockaddr_parse_any_str(sockaddr_t *dst, const str *src); int sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src); int endpoint_parse_any(endpoint_t *, const char *); // address (ip) optional int sockaddr_getaddrinfo_alt(sockaddr_t *a, sockaddr_t *a2, const char *s);