diff --git a/sources/address.c b/sources/address.c index 37a276334..d9666c858 100644 --- a/sources/address.c +++ b/sources/address.c @@ -102,19 +102,21 @@ static bool od_address_ipv6eq(struct sockaddr_in6 *a, struct sockaddr_in6 *b) bool od_address_equals(struct sockaddr *firstAddress, struct sockaddr *secondAddress) { - if (firstAddress->sa_family != secondAddress->sa_family) - return false; - - if (firstAddress->sa_family == AF_INET) { - return od_address_ipv4eq((struct sockaddr_in *)firstAddress, - (struct sockaddr_in *)secondAddress); - } else if (firstAddress->sa_family == AF_INET6) { - return od_address_ipv6eq((struct sockaddr_in6 *)firstAddress, - (struct sockaddr_in6 *)secondAddress); - } else if (firstAddress->sa_family == AF_UNSPEC) { - return true; + if (firstAddress->sa_family == secondAddress->sa_family) + { + if (firstAddress->sa_family == AF_INET) + { + if (od_address_ipv4eq((struct sockaddr_in *)firstAddress, + (struct sockaddr_in *)secondAddress)) + return true; + } + else if (firstAddress->sa_family == AF_INET6) + { + if (od_address_ipv6eq((struct sockaddr_in6 *)firstAddress, + (struct sockaddr_in6 *)secondAddress)) + return true; + } } - return false; } @@ -175,9 +177,8 @@ static bool od_address_check_hostname(struct sockaddr_storage *client_sa, found = false; for (gai = gai_result; gai; gai = gai->ai_next) { - if (od_address_equals(gai->ai_addr, - (struct sockaddr *)client_sa) == 0) { - found = true; + found = od_address_equals(gai->ai_addr, (struct sockaddr *)client_sa); + if (found) { break; } }