Skip to content

Commit 5f571ef

Browse files
committed
ExceptionCachingResolver: Avoid NoMetaqueries
NoMetaqueries do not use sockets, and caching them could replace other cache entries which are more important.
1 parent 002c13e commit 5f571ef

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

dns_cache/resolver.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from dns.name import from_text
55
from dns.rdataclass import IN
66
from dns.rdatatype import A
7-
from dns.resolver import NXDOMAIN, Answer, Resolver
7+
from dns.resolver import NXDOMAIN, Answer, NoMetaqueries, Resolver
88
from dns.version import MAJOR as _MAJOR, MINOR as _MINOR
99

1010
import dns_cache.expiration
@@ -102,6 +102,8 @@ def resolve(self, qname, rdtype=A, rdclass=IN,
102102
qname, rdtype, rdclass, tcp, source,
103103
raise_on_no_answer, source_port, lifetime,
104104
)
105+
except NoMetaqueries:
106+
raise
105107
except DNSException as e:
106108
self._cache_exception(e, qname, rdtype, rdclass)
107109
raise
@@ -131,6 +133,8 @@ def query(self, qname, rdtype=A, rdclass=IN, **kwargs):
131133
return super(ExceptionCachingResolver, self).query(
132134
qname, rdtype, rdclass, **kwargs
133135
)
136+
except NoMetaqueries:
137+
raise
134138
except DNSException as e:
135139
self._cache_exception(e, qname, rdtype, rdclass)
136140
raise

0 commit comments

Comments
 (0)