@@ -86,7 +86,8 @@ def _async_add(self, record: _DNSRecord) -> bool:
8686 # replaces any existing records that are __eq__ to each other which
8787 # removes the risk that accessing the cache from the wrong
8888 # direction would return the old incorrect entry.
89- store = self .cache .setdefault (record .key , {})
89+ if (store := self .cache .get (record .key )) is None :
90+ store = self .cache [record .key ] = {}
9091 new = record not in store and not isinstance (record , DNSNsec )
9192 store [record ] = record
9293 when = record .created + (record .ttl * 1000 )
@@ -97,7 +98,9 @@ def _async_add(self, record: _DNSRecord) -> bool:
9798
9899 if isinstance (record , DNSService ):
99100 service_record = record
100- self .service_cache .setdefault (record .server_key , {})[service_record ] = service_record
101+ if (service_store := self .service_cache .get (service_record .server_key )) is None :
102+ service_store = self .service_cache [service_record .server_key ] = {}
103+ service_store [service_record ] = service_record
101104 return new
102105
103106 def async_add_records (self , entries : Iterable [DNSRecord ]) -> bool :
@@ -145,14 +148,16 @@ def async_expire(self, now: _float) -> List[DNSRecord]:
145148 expired : List [DNSRecord ] = []
146149 # Find any expired records and add them to the to-delete list
147150 while self ._expire_heap :
148- when , record = self ._expire_heap [0 ]
151+ when_record = self ._expire_heap [0 ]
152+ when = when_record [0 ]
149153 if when > now :
150154 break
151155 heappop (self ._expire_heap )
152156 # Check if the record hasn't been re-added to the heap
153157 # with a different expiration time as it will be removed
154158 # later when it reaches the top of the heap and its
155159 # expiration time is met.
160+ record = when_record [1 ]
156161 if self ._expirations .get (record ) == when :
157162 expired .append (record )
158163
0 commit comments