diff --git a/daemon/sdp.c b/daemon/sdp.c index 0b774b6e3..1c67bf5a3 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -452,7 +452,7 @@ static bool __parse_address(sockaddr_t *out, str *network_type, str *address_typ } af = get_socket_family_rfc(address_type); - if (sockaddr_parse_str(out, af, address)) + if (!sockaddr_parse_str(out, af, address)) return false; return true; diff --git a/lib/socket.c b/lib/socket.c index 9ed075ed2..2cd147aff 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -570,15 +570,15 @@ bool sockaddr_parse_any_str(sockaddr_t *dst, const str *src) { sprintf(buf, STR_FORMAT, STR_FMT(src)); return sockaddr_parse_any(dst, buf); } -int sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src) { +bool sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src) { char buf[64]; if (src->len >= sizeof(buf)) - return -1; + return false; if (!fam) - return -1; + return false; sprintf(buf, STR_FORMAT, STR_FMT(src)); dst->family = fam; - return fam->addr_parse(dst, buf) ? 0 : -1; + return fam->addr_parse(dst, buf); } sockfamily_t *get_socket_family_rfc(const str *s) { int i; diff --git a/lib/socket.h b/lib/socket.h index 14af574ac..8a5436a7d 100644 --- a/lib/socket.h +++ b/lib/socket.h @@ -288,7 +288,7 @@ 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); bool sockaddr_parse_any_str(sockaddr_t *dst, const str *src); -int sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src); +bool 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); int endpoint_parse_any_getaddrinfo_alt(endpoint_t *d, endpoint_t *d2, const char *s); // address (ip or hostname) optional