add async option for dns handler

This commit is contained in:
ginuerzh
2023-04-14 18:50:33 +08:00
parent 18fa84b51f
commit de5ce1e1ca
4 changed files with 76 additions and 33 deletions

View File

@ -150,8 +150,8 @@ func (r *resolver) resolve6(ctx context.Context, server *NameServer, host string
func (r *resolver) resolveIPs(ctx context.Context, server *NameServer, mq *dns.Msg) (ips []net.IP, err error) {
key := resolver_util.NewCacheKey(&mq.Question[0])
mr := r.cache.Load(key)
if mr == nil {
mr, ttl := r.cache.Load(key)
if ttl <= 0 {
resolver_util.AddSubnetOpt(mq, server.ClientIP)
mr, err = r.exchange(ctx, server.exchanger, mq)
if err != nil {