summaryrefslogtreecommitdiff
path: root/src/net/SocketAddress.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/SocketAddress.cxx')
-rw-r--r--src/net/SocketAddress.cxx7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/net/SocketAddress.cxx b/src/net/SocketAddress.cxx
index 70175a29f..357cbb8dd 100644
--- a/src/net/SocketAddress.cxx
+++ b/src/net/SocketAddress.cxx
@@ -29,6 +29,7 @@
#include "config.h"
#include "SocketAddress.hxx"
+#include "IPv6Address.hxx"
#include "util/StringView.hxx"
#include <string.h>
@@ -78,9 +79,7 @@ SocketAddress::GetLocalRaw() const noexcept
bool
SocketAddress::IsV6Any() const noexcept
{
- return GetFamily() == AF_INET6 &&
- memcmp(&((const struct sockaddr_in6 *)(const void *)GetAddress())->sin6_addr,
- &in6addr_any, sizeof(in6addr_any)) == 0;
+ return GetFamily() == AF_INET6 && IPv6Address(*this).IsAny();
}
unsigned
@@ -94,7 +93,7 @@ SocketAddress::GetPort() const noexcept
return ntohs(((const struct sockaddr_in *)(const void *)address)->sin_port);
case AF_INET6:
- return ntohs(((const struct sockaddr_in6 *)(const void *)address)->sin6_port);
+ return IPv6Address(*this).GetPort();
default:
return 0;