diff options
Diffstat (limited to 'net/base/ip_endpoint.cc')
-rw-r--r-- | net/base/ip_endpoint.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/net/base/ip_endpoint.cc b/net/base/ip_endpoint.cc index 55ea4465..b940710b 100644 --- a/net/base/ip_endpoint.cc +++ b/net/base/ip_endpoint.cc @@ -107,13 +107,15 @@ bool IPEndPoint::FromSockAddr(const struct sockaddr* address, } std::string IPEndPoint::ToString() const { - struct sockaddr_storage addr_storage; + union { + struct sockaddr_storage addr_storage; + struct sockaddr addr; + }; size_t addr_len = sizeof(addr_storage); - struct sockaddr* addr = reinterpret_cast<struct sockaddr*>(&addr_storage); - if (!ToSockAddr(addr, &addr_len)) { + if (!ToSockAddr(&addr, &addr_len)) { return ""; } - return NetAddressToStringWithPort(addr, addr_len); + return NetAddressToStringWithPort(&addr, addr_len); } bool IPEndPoint::operator<(const IPEndPoint& that) const { |