Fix rules lock
This commit is contained in:
+4
-2
@@ -589,12 +589,13 @@ func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg, options adapte
|
|||||||
return &responseMessage, nil
|
return &responseMessage, nil
|
||||||
}
|
}
|
||||||
r.rulesAccess.RLock()
|
r.rulesAccess.RLock()
|
||||||
defer r.rulesAccess.RUnlock()
|
|
||||||
if r.closing {
|
if r.closing {
|
||||||
|
r.rulesAccess.RUnlock()
|
||||||
return nil, E.New("dns router closed")
|
return nil, E.New("dns router closed")
|
||||||
}
|
}
|
||||||
rules := r.rules
|
rules := r.rules
|
||||||
legacyDNSMode := r.legacyDNSMode
|
legacyDNSMode := r.legacyDNSMode
|
||||||
|
r.rulesAccess.RUnlock()
|
||||||
r.logger.DebugContext(ctx, "exchange ", FormatQuestion(message.Question[0].String()))
|
r.logger.DebugContext(ctx, "exchange ", FormatQuestion(message.Question[0].String()))
|
||||||
var (
|
var (
|
||||||
response *mDNS.Msg
|
response *mDNS.Msg
|
||||||
@@ -701,12 +702,13 @@ done:
|
|||||||
|
|
||||||
func (r *Router) Lookup(ctx context.Context, domain string, options adapter.DNSQueryOptions) ([]netip.Addr, error) {
|
func (r *Router) Lookup(ctx context.Context, domain string, options adapter.DNSQueryOptions) ([]netip.Addr, error) {
|
||||||
r.rulesAccess.RLock()
|
r.rulesAccess.RLock()
|
||||||
defer r.rulesAccess.RUnlock()
|
|
||||||
if r.closing {
|
if r.closing {
|
||||||
|
r.rulesAccess.RUnlock()
|
||||||
return nil, E.New("dns router closed")
|
return nil, E.New("dns router closed")
|
||||||
}
|
}
|
||||||
rules := r.rules
|
rules := r.rules
|
||||||
legacyDNSMode := r.legacyDNSMode
|
legacyDNSMode := r.legacyDNSMode
|
||||||
|
r.rulesAccess.RUnlock()
|
||||||
var (
|
var (
|
||||||
responseAddrs []netip.Addr
|
responseAddrs []netip.Addr
|
||||||
err error
|
err error
|
||||||
|
|||||||
Reference in New Issue
Block a user