mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-16 08:48:59 +02:00
beware of link_ntoa_r()
This commit is contained in:
parent
ae1192e3c5
commit
b191e1023c
1 changed files with 5 additions and 1 deletions
|
|
@ -205,11 +205,15 @@ std::vector<Network::NetworkInterface> GetAvailableNetworkInterfaces() {
|
|||
if (msglen == 0 || msglen < SA_SIZE(sa))
|
||||
break;
|
||||
if (i == RTA_NETMASK && sa->sa_family == AF_LINK) {
|
||||
size_t namelen = 0;
|
||||
struct sockaddr_dl const* sdl = reinterpret_cast<struct sockaddr_dl const*>(sa);
|
||||
#if defined(__APPLE__) || (defined(__FreeBSD__) && __FreeBSD__ < 15)
|
||||
iface.name = std::string{::link_ntoa(sdl)};
|
||||
#else
|
||||
size_t namelen = 0;
|
||||
::link_ntoa_r(sdl, nullptr, &namelen);
|
||||
iface.name = std::string(namelen, ' ');
|
||||
::link_ntoa_r(sdl, iface.name.data(), &namelen);
|
||||
#endif
|
||||
std::memcpy(&iface.ip_address, sa, sizeof(struct sockaddr_in));
|
||||
}
|
||||
msglen -= SA_SIZE(sa);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue