mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-09-19 12:06:01 +08:00
chore: add /cache/dns/flush
to restful api
This commit is contained in:
@ -230,10 +230,18 @@ func ResolveECH(ctx context.Context, host string) ([]byte, error) {
|
|||||||
return ResolveECHWithResolver(ctx, host, DefaultResolver)
|
return ResolveECHWithResolver(ctx, host, DefaultResolver)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ClearCache() {
|
||||||
|
if DefaultResolver != nil {
|
||||||
|
go DefaultResolver.ClearCache()
|
||||||
|
}
|
||||||
|
go SystemResolver.ClearCache() // SystemResolver unneeded check nil
|
||||||
|
}
|
||||||
|
|
||||||
func ResetConnection() {
|
func ResetConnection() {
|
||||||
if DefaultResolver != nil {
|
if DefaultResolver != nil {
|
||||||
go DefaultResolver.ResetConnection()
|
go DefaultResolver.ResetConnection()
|
||||||
}
|
}
|
||||||
|
go SystemResolver.ResetConnection() // SystemResolver unneeded check nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SortationAddr(ips []netip.Addr) (ipv4s, ipv6s []netip.Addr) {
|
func SortationAddr(ips []netip.Addr) (ipv4s, ipv6s []netip.Addr) {
|
||||||
|
@ -9,12 +9,7 @@ import (
|
|||||||
var systemResolver []dnsClient
|
var systemResolver []dnsClient
|
||||||
|
|
||||||
func FlushCacheWithDefaultResolver() {
|
func FlushCacheWithDefaultResolver() {
|
||||||
if r := resolver.DefaultResolver; r != nil {
|
resolver.ClearCache()
|
||||||
r.ClearCache()
|
|
||||||
}
|
|
||||||
if r := resolver.SystemResolver; r != nil {
|
|
||||||
r.ClearCache()
|
|
||||||
}
|
|
||||||
resolver.ResetConnection()
|
resolver.ResetConnection()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
func cacheRouter() http.Handler {
|
func cacheRouter() http.Handler {
|
||||||
r := chi.NewRouter()
|
r := chi.NewRouter()
|
||||||
r.Post("/fakeip/flush", flushFakeIPPool)
|
r.Post("/fakeip/flush", flushFakeIPPool)
|
||||||
|
r.Post("/dns/flush", flushDnsCache)
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,3 +25,8 @@ func flushFakeIPPool(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
render.NoContent(w, r)
|
render.NoContent(w, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func flushDnsCache(w http.ResponseWriter, r *http.Request) {
|
||||||
|
resolver.ClearCache()
|
||||||
|
render.NoContent(w, r)
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user