diff --git a/lib/socket.c b/lib/socket.c index 59db5d4d6..c236b4b18 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -644,10 +644,10 @@ static int socket_addrinfo_convert(sockaddr_t *a, struct addrinfo *res) { return -1; return 0; } -int sockaddr_getaddrinfo_alt(sockaddr_t *a, sockaddr_t *a2, const char *s) { +bool sockaddr_getaddrinfo_alt(sockaddr_t *a, sockaddr_t *a2, const char *s) { struct addrinfo hints, *res; int status; - int ret; + bool ret; memset(&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; @@ -656,15 +656,15 @@ int sockaddr_getaddrinfo_alt(sockaddr_t *a, sockaddr_t *a2, const char *s) { if ((status = getaddrinfo(s, NULL, &hints, &res)) != 0) { __C_DBG("getaddrinfo failed for %s, status is \"%s\"\n", s, gai_strerror(status)); - return -1; + return false; } - ret = socket_addrinfo_convert(a, res); + ret = socket_addrinfo_convert(a, res) == 0 ? true : false; if (a2) { - if (ret == 0 && res->ai_next) { + if (ret == true && res->ai_next) { struct addrinfo *next = res->ai_next; - ret = socket_addrinfo_convert(a2, next); + ret = socket_addrinfo_convert(a2, next) == 0 ? true : false; } else ZERO(*a2); @@ -708,7 +708,7 @@ int endpoint_parse_any_getaddrinfo_alt(endpoint_t *d, endpoint_t *d2, const char sprintf(buf, "%.*s", len, s); } - if (sockaddr_getaddrinfo_alt(&d->address, d2 ? &d2->address : NULL, buf)) + if (!sockaddr_getaddrinfo_alt(&d->address, d2 ? &d2->address : NULL, buf)) return -1; if (d2) { diff --git a/lib/socket.h b/lib/socket.h index b93ae141c..e4d2d0091 100644 --- a/lib/socket.h +++ b/lib/socket.h @@ -290,7 +290,7 @@ bool sockaddr_parse_any(sockaddr_t *dst, const char *src); bool sockaddr_parse_any_str(sockaddr_t *dst, const str *src); bool sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src); bool endpoint_parse_any(endpoint_t *, const char *); // address (ip) optional -int sockaddr_getaddrinfo_alt(sockaddr_t *a, sockaddr_t *a2, const char *s); +bool 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 INLINE int endpoint_parse_any_getaddrinfo(endpoint_t *d, const char *s); void endpoint_parse_sockaddr_storage(endpoint_t *, struct sockaddr_storage *); @@ -336,7 +336,7 @@ INLINE int endpoint_parse_any_getaddrinfo_full(endpoint_t *d, const char *s) { return 0; } INLINE int sockaddr_getaddrinfo(sockaddr_t *a, const char *s) { - return sockaddr_getaddrinfo_alt(a, NULL, s); + return sockaddr_getaddrinfo_alt(a, NULL, s) ? 0 : 1; } INLINE int endpoint_parse_any_getaddrinfo(endpoint_t *d, const char *s) { return endpoint_parse_any_getaddrinfo_alt(d, NULL, s);