Use std::memcpy to fix alignment
As suggested by @madmaxoft
This commit is contained in:
parent
20da3d34a5
commit
4ffaace384
@ -81,13 +81,19 @@ static AString PrintAddress(ifaddrs * InterfaceAddress)
|
|||||||
case AF_INET:
|
case AF_INET:
|
||||||
{ // IPv4
|
{ // IPv4
|
||||||
char AddressBuffer[INET_ADDRSTRLEN];
|
char AddressBuffer[INET_ADDRSTRLEN];
|
||||||
inet_ntop(AF_INET, &(reinterpret_cast<struct sockaddr_in *>(reinterpret_cast<void *>(InterfaceAddress->ifa_addr))->sin_addr), AddressBuffer, INET_ADDRSTRLEN);
|
sockaddr_in InternetSocket;
|
||||||
|
|
||||||
|
std::memcpy(&InternetSocket, InterfaceAddress->ifa_addr, sizeof(InternetSocket));
|
||||||
|
inet_ntop(AF_INET, &InternetSocket.sin_addr, AddressBuffer, INET_ADDRSTRLEN);
|
||||||
return AddressBuffer;
|
return AddressBuffer;
|
||||||
}
|
}
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
{ // IPv6
|
{ // IPv6
|
||||||
char AddressBuffer[INET6_ADDRSTRLEN];
|
char AddressBuffer[INET6_ADDRSTRLEN];
|
||||||
inet_ntop(AF_INET6, &(reinterpret_cast<struct sockaddr_in6 *>(reinterpret_cast<void *>(InterfaceAddress->ifa_addr))->sin6_addr), AddressBuffer, INET6_ADDRSTRLEN);
|
sockaddr_in6 InternetSocket;
|
||||||
|
|
||||||
|
std::memcpy(&InternetSocket, InterfaceAddress->ifa_addr, sizeof(InternetSocket));
|
||||||
|
inet_ntop(AF_INET6, &InternetSocket.sin6_addr, AddressBuffer, INET6_ADDRSTRLEN);
|
||||||
return AddressBuffer;
|
return AddressBuffer;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user