|
|
|
@ -267,6 +267,18 @@ SOCKET NetworkAddress::Resolve(int family, int socktype, int flags, SocketList *
|
|
|
|
|
this->address_length = (int)runp->ai_addrlen;
|
|
|
|
|
assert(sizeof(this->address) >= runp->ai_addrlen);
|
|
|
|
|
memcpy(&this->address, runp->ai_addr, runp->ai_addrlen);
|
|
|
|
|
#ifdef __EMSCRIPTEN__
|
|
|
|
|
/* Emscripten doesn't zero sin_zero, but as we compare addresses
|
|
|
|
|
* to see if they are the same address, we need them to be zero'd.
|
|
|
|
|
* Emscripten is, as far as we know, the only OS not doing this.
|
|
|
|
|
*
|
|
|
|
|
* https://github.com/emscripten-core/emscripten/issues/12998
|
|
|
|
|
*/
|
|
|
|
|
if (this->address.ss_family == AF_INET) {
|
|
|
|
|
sockaddr_in *address_ipv4 = (sockaddr_in *)&this->address;
|
|
|
|
|
memset(address_ipv4->sin_zero, 0, sizeof(address_ipv4->sin_zero));
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|