Feature: reuse dns resolver cache when hot reload

This commit is contained in:
Dreamacro
2020-08-31 00:32:18 +08:00
parent b8ed738238
commit a32ee13fc9
4 changed files with 48 additions and 0 deletions

View File

@ -120,6 +120,14 @@ func updateDNS(c *config.DNS) {
},
Default: c.DefaultNameserver,
})
// reuse cache of old resolver
if resolver.DefaultResolver != nil {
if o, ok := resolver.DefaultResolver.(*dns.Resolver); ok {
o.PatchCache(r)
}
}
resolver.DefaultResolver = r
tunnel.SetResolver(r)
if err := dns.ReCreateServer(c.Listen, r); err != nil {