Skip to content

Commit af4d082

Browse files
authored
Breakout functions with no self-use in zeroconf._handlers (#1003)
1 parent d3ed691 commit af4d082

1 file changed

Lines changed: 15 additions & 14 deletions

File tree

zeroconf/_handlers.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,19 @@ def _has_mcast_record_in_last_second(self, record: DNSRecord) -> bool:
227227
return bool(maybe_entry and self._now - maybe_entry.created < _ONE_SECOND)
228228

229229

230+
def _get_address_and_nsec_records(service: ServiceInfo, now: float) -> Set[DNSRecord]:
231+
"""Build a set of address records and NSEC records for non-present record types."""
232+
seen_types: Set[int] = set()
233+
records: Set[DNSRecord] = set()
234+
for dns_address in service.dns_addresses(created=now):
235+
seen_types.add(dns_address.type)
236+
records.add(dns_address)
237+
missing_types: Set[int] = _ADDRESS_RECORD_TYPES - seen_types
238+
if missing_types:
239+
records.add(construct_nsec_record(service.server, list(missing_types), now))
240+
return records
241+
242+
230243
class QueryHandler:
231244
"""Query the ServiceRegistry."""
232245

@@ -261,21 +274,9 @@ def _add_pointer_answers(
261274
if known_answers.suppresses(dns_pointer):
262275
continue
263276
additionals: Set[DNSRecord] = {service.dns_service(created=now), service.dns_text(created=now)}
264-
additionals |= self._get_address_and_nsec_records(service, now)
277+
additionals |= _get_address_and_nsec_records(service, now)
265278
answer_set[dns_pointer] = additionals
266279

267-
def _get_address_and_nsec_records(self, service: ServiceInfo, now: float) -> Set[DNSRecord]:
268-
"""Build a set of address records and NSEC records for non-present record types."""
269-
seen_types: Set[int] = set()
270-
records: Set[DNSRecord] = set()
271-
for dns_address in service.dns_addresses(created=now):
272-
seen_types.add(dns_address.type)
273-
records.add(dns_address)
274-
missing_types: Set[int] = _ADDRESS_RECORD_TYPES - seen_types
275-
if missing_types:
276-
records.add(construct_nsec_record(service.server, list(missing_types), now))
277-
return records
278-
279280
def _add_address_answers(
280281
self,
281282
name: str,
@@ -332,7 +333,7 @@ def _answer_question(
332333
# https://tools.ietf.org/html/rfc6763#section-12.2.
333334
dns_service = service.dns_service(created=now)
334335
if not known_answers.suppresses(dns_service):
335-
answer_set[dns_service] = self._get_address_and_nsec_records(service, now)
336+
answer_set[dns_service] = _get_address_and_nsec_records(service, now)
336337
if type_ in (_TYPE_TXT, _TYPE_ANY):
337338
dns_text = service.dns_text(created=now)
338339
if not known_answers.suppresses(dns_text):

0 commit comments

Comments
 (0)