From 8161ef2bda86e2cc3f6a41158bf745169d06d787 Mon Sep 17 00:00:00 2001 From: NikitaUnisikhin Date: Wed, 31 Jan 2024 21:58:53 +0000 Subject: [PATCH] fix od_address_check_hostname --- sources/address.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) 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; } }