diff --git a/CMakeLists.txt b/CMakeLists.txt index e64473f37..7592ac8b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1525,6 +1525,9 @@ if (WIN32) lib/plat/windows/windows-service.c lib/plat/windows/windows-sockets.c ) + if (LWS_WITH_SYS_ASYNC_DNS) + list(APPEND SOURCES lib/plat/windows/windows-resolv.c) + endif() else() if (LWS_PLAT_OPTEE) diff --git a/lib/plat/windows/windows-resolv.c b/lib/plat/windows/windows-resolv.c index 1cfbcc633..541cc0ae6 100644 --- a/lib/plat/windows/windows-resolv.c +++ b/lib/plat/windows/windows-resolv.c @@ -39,7 +39,7 @@ lws_async_dns_server_check_t lws_plat_asyncdns_init(struct lws_context *context, lws_sockaddr46 *sa46) { - char subkey[512], dhcpns[512], ns[512], value[128], *key = + char subkey[512], value[128], *key = "SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters\\Interfaces"; HKEY hKey, hSub; LONG err; @@ -59,7 +59,7 @@ lws_plat_asyncdns_init(struct lws_context *context, lws_sockaddr46 *sa46) &type, value, &len) == ERROR_SUCCESS || RegQueryValueEx(hSub, "DhcpNameServer", 0, &type, value, &len) == ERROR_SUCCESS)) { - n = lws_sa46_parse_numeric_address(value, sa46) + n = lws_sa46_parse_numeric_address(value, sa46); RegCloseKey(hSub); RegCloseKey(hKey); return n == 0 ? LADNS_CONF_SERVER_CHANGED : diff --git a/lib/system/async-dns/async-dns-parse.c b/lib/system/async-dns/async-dns-parse.c index 48bc56a79..c4068cfcb 100644 --- a/lib/system/async-dns/async-dns-parse.c +++ b/lib/system/async-dns/async-dns-parse.c @@ -122,7 +122,7 @@ again1: ls++; - return ls - ols; + return lws_ptr_diff(ls, ols); } typedef int (*lws_async_dns_find_t)(const char *name, void *opaque, @@ -160,7 +160,7 @@ lws_adns_iterate(lws_adns_q_t *q, const uint8_t *pkt, int len, uint32_t ttl; lws_strncpy(stack[0].name, expname, sizeof(stack[0].name)); - stack[0].enl = strlen(expname); + stack[0].enl = (int)strlen(expname); start: ansc = lws_ser_ru16be(pkt + DHO_NANSWERS); @@ -583,11 +583,11 @@ lws_adns_parse_udp(lws_async_dns_t *dns, const uint8_t *pkt, size_t len) * char []: copy of resolved name */ - ncname = strlen(nmcname) + 1; + ncname = (int)strlen(nmcname) + 1; est = sizeof(lws_adns_cache_t) + ncname; if (lws_ser_ru16be(pkt + DHO_NANSWERS)) { - int ir = lws_adns_iterate(q, pkt, len, nmcname, + int ir = lws_adns_iterate(q, pkt, (int)len, nmcname, lws_async_dns_estimate, &est); if (ir < 0) goto fail_out; @@ -599,7 +599,7 @@ lws_adns_parse_udp(lws_async_dns_t *dns, const uint8_t *pkt, size_t len) /* but we want to create the cache entry against the original request */ nm = ((const char *)&q[1]) + DNS_MAX; - n = strlen(nm) + 1; + n = (int)strlen(nm) + 1; lwsl_info("%s: create cache entry for %s, %zu\n", __func__, nm, est - sizeof(lws_adns_cache_t)); @@ -632,7 +632,7 @@ lws_adns_parse_udp(lws_async_dns_t *dns, const uint8_t *pkt, size_t len) */ if (lws_ser_ru16be(pkt + DHO_NANSWERS) && - lws_adns_iterate(q, pkt, len, nmcname, lws_async_dns_store, &adst) < 0) { + lws_adns_iterate(q, pkt, (int)len, nmcname, lws_async_dns_store, &adst) < 0) { lws_free(c); goto fail_out; } diff --git a/lib/system/async-dns/async-dns.c b/lib/system/async-dns/async-dns.c index 81c34e0b9..c1332d14f 100644 --- a/lib/system/async-dns/async-dns.c +++ b/lib/system/async-dns/async-dns.c @@ -483,7 +483,7 @@ check_tid(struct lws_dll2 *d, void *user) { lws_adns_q_t *q = lws_container_of(d, lws_adns_q_t, list); - return q->tid == (uint16_t)(long)user; + return q->tid == (uint16_t)(intptr_t)user; } int @@ -502,7 +502,7 @@ lws_async_dns_get_new_tid(struct lws_context *context, lws_adns_q_t *q) return -1; if (lws_dll2_foreach_safe(&dns->waiting, - (void *)(long)tid, check_tid)) + (void *)(intptr_t)tid, check_tid)) continue; q->tid = tid;