Skip to content

Commit

Permalink
fix od_address_check_hostname
Browse files Browse the repository at this point in the history
  • Loading branch information
NikitaUnisikhin committed Jan 31, 2024
1 parent 9c19743 commit 8161ef2
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions sources/address.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}
}
Expand Down

0 comments on commit 8161ef2

Please sign in to comment.