diff --git a/libc/dns/gethnamaddr.c b/libc/dns/gethnamaddr.c
index 80fdcbe..1d847b8 100644
--- a/libc/dns/gethnamaddr.c
+++ b/libc/dns/gethnamaddr.c
@@ -565,7 +565,7 @@
 	char buf[4];
 	if (fread(buf, 1, sizeof(buf), proxy) != sizeof(buf)) return NULL;
 
-	/* This is reading serialized data from system/netd/DnsProxyListener.cpp
+	/* This is reading serialized data from system/netd/server/DnsProxyListener.cpp
 	 * and changes here need to be matched there */
 	int result_code = strtol(buf, NULL, 10);
 	if (result_code != DnsProxyQueryResult) {
@@ -763,7 +763,7 @@
 
 	netid = __netdClientDispatch.netIdForResolv(netid);
 
-	/* This is writing to system/netd/DnsProxyListener.cpp and changes
+	/* This is writing to system/netd/server/DnsProxyListener.cpp and changes
 	 * here need to be matched there */
 	if (fprintf(proxy, "gethostbyname %u %s %d",
 			netid,
diff --git a/libc/dns/include/resolv_netid.h b/libc/dns/include/resolv_netid.h
index d4668c3..f1b8892 100644
--- a/libc/dns/include/resolv_netid.h
+++ b/libc/dns/include/resolv_netid.h
@@ -36,7 +36,7 @@
 #include <netinet/in.h>
 
 /*
- * Passing NETID_UNSET as the netId causes system/netd/DnsProxyListener.cpp to
+ * Passing NETID_UNSET as the netId causes system/netd/server/DnsProxyListener.cpp to
  * fill in the appropriate default netId for the query.
  */
 #define NETID_UNSET 0u
@@ -61,9 +61,6 @@
 extern void _resolv_set_nameservers_for_net(unsigned netid,
     const char** servers, int numservers, const char *domains) __used_in_netd;
 
-/* flush the cache associated with a certain network */
-extern void _resolv_flush_cache_for_net(unsigned netid) __used_in_netd;
-
 /* delete the cache associated with a certain network */
 extern void _resolv_delete_cache_for_net(unsigned netid) __used_in_netd;
 
diff --git a/libc/dns/resolv/res_cache.c b/libc/dns/resolv/res_cache.c
index 419b748..c934b4e 100644
--- a/libc/dns/resolv/res_cache.c
+++ b/libc/dns/resolv/res_cache.c
@@ -1831,17 +1831,6 @@
     return cache;
 }
 
-void
-_resolv_flush_cache_for_net(unsigned netid)
-{
-    pthread_once(&_res_cache_once, _res_cache_init);
-    pthread_mutex_lock(&_res_cache_list_lock);
-
-    _flush_cache_for_net_locked(netid);
-
-    pthread_mutex_unlock(&_res_cache_list_lock);
-}
-
 static void
 _flush_cache_for_net_locked(unsigned netid)
 {
