From 5f1f296213550c34fb098e07e82e8463f6833e95 Mon Sep 17 00:00:00 2001 From: wwqgtxx Date: Sun, 27 Jul 2025 12:30:33 +0800 Subject: [PATCH] chore: add `/cache/dns/flush` to restful api --- component/resolver/resolver.go | 8 ++++++++ dns/patch_android.go | 7 +------ hub/route/cache.go | 6 ++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/component/resolver/resolver.go b/component/resolver/resolver.go index 44ad2d71..e87a9103 100644 --- a/component/resolver/resolver.go +++ b/component/resolver/resolver.go @@ -230,10 +230,18 @@ func ResolveECH(ctx context.Context, host string) ([]byte, error) { return ResolveECHWithResolver(ctx, host, DefaultResolver) } +func ClearCache() { + if DefaultResolver != nil { + go DefaultResolver.ClearCache() + } + go SystemResolver.ClearCache() // SystemResolver unneeded check nil +} + func ResetConnection() { if DefaultResolver != nil { go DefaultResolver.ResetConnection() } + go SystemResolver.ResetConnection() // SystemResolver unneeded check nil } func SortationAddr(ips []netip.Addr) (ipv4s, ipv6s []netip.Addr) { diff --git a/dns/patch_android.go b/dns/patch_android.go index 8e744fcd..cad718b6 100644 --- a/dns/patch_android.go +++ b/dns/patch_android.go @@ -9,12 +9,7 @@ import ( var systemResolver []dnsClient func FlushCacheWithDefaultResolver() { - if r := resolver.DefaultResolver; r != nil { - r.ClearCache() - } - if r := resolver.SystemResolver; r != nil { - r.ClearCache() - } + resolver.ClearCache() resolver.ResetConnection() } diff --git a/hub/route/cache.go b/hub/route/cache.go index f07eb33a..78bda737 100644 --- a/hub/route/cache.go +++ b/hub/route/cache.go @@ -12,6 +12,7 @@ import ( func cacheRouter() http.Handler { r := chi.NewRouter() r.Post("/fakeip/flush", flushFakeIPPool) + r.Post("/dns/flush", flushDnsCache) return r } @@ -24,3 +25,8 @@ func flushFakeIPPool(w http.ResponseWriter, r *http.Request) { } render.NoContent(w, r) } + +func flushDnsCache(w http.ResponseWriter, r *http.Request) { + resolver.ClearCache() + render.NoContent(w, r) +}