diff --git a/hooklib/dns.c b/hooklib/dns.c index a07b43c..e7d97c2 100644 --- a/hooklib/dns.c +++ b/hooklib/dns.c @@ -420,6 +420,10 @@ static int WSAAPI hook_getaddrinfo( goto end; } + if (!strcmp(pNodeName, "239.255.255.250") && !strcmp(pServiceName, "1900")) { + return next_getaddrinfo(pNodeName, pServiceName, pHints, ppResult); + } + mbstowcs_s(&wstr_c, NULL, 0, pNodeName, 0); wstr = malloc(wstr_c * sizeof(wchar_t)); diff --git a/platform/netenv.c b/platform/netenv.c index fabfc27..0801011 100644 --- a/platform/netenv.c +++ b/platform/netenv.c @@ -406,6 +406,10 @@ static uint32_t WINAPI hook_GetBestRoute( (int) _byteswap_ulong(src_ip), (int) _byteswap_ulong(dest_ip)); + if ((int) _byteswap_ulong(src_ip) == 0xdfffffff) { + return next_GetBestRoute(src_ip, dest_ip, route); + } + memset(route, 0, sizeof(*route)); /* This doesn't seem to get read? It just needs to succeed. */