Skip to content

Commit 7f2de64

Browse files
committed
Ignore stale records when considering to ask questions
1 parent 6a11f24 commit 7f2de64

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

zeroconf/_protocol/outgoing.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def add_question_or_one_cache(
162162
) -> None:
163163
"""Add a question if it is not already cached."""
164164
cached_entry = cache.get_by_details(name, type_, class_)
165-
if not cached_entry:
165+
if not cached_entry or cached_entry.is_stale(now):
166166
self.add_question(DNSQuestion(name, type_, class_))
167167
else:
168168
self.add_answer_at_time(cached_entry, now)
@@ -174,11 +174,12 @@ def add_question_or_all_cache(
174174
This is currently only used for IPv6 addresses.
175175
"""
176176
cached_entries = cache.get_all_by_details(name, type_, class_)
177-
if not cached_entries:
177+
if not cached_entries or any(entry.is_stale(now) for entry in cached_entries):
178178
self.add_question(DNSQuestion(name, type_, class_))
179179
return
180180
for cached_entry in cached_entries:
181-
self.add_answer_at_time(cached_entry, now)
181+
if not cached_entry.is_stale(now):
182+
self.add_answer_at_time(cached_entry, now)
182183

183184
def _pack(self, format_: Union[bytes, str], size: int, value: Any) -> None:
184185
self.data.append(struct.pack(format_, value))

0 commit comments

Comments
 (0)