From 342907460829c4a1aa4fbd18d87003a10d061064 Mon Sep 17 00:00:00 2001 From: Mikael Pahmp Date: Thu, 27 Jun 2019 17:39:39 +0200 Subject: [PATCH] Some code fixes to make sure IPv6 addresses are recorded and returned when browsing. --- zeroconf.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zeroconf.py b/zeroconf.py index 4091159de..fac1e105c 100644 --- a/zeroconf.py +++ b/zeroconf.py @@ -1607,7 +1607,7 @@ def get_name(self): def update_record(self, zc: 'Zeroconf', now: float, record: DNSRecord) -> None: """Updates service information from a DNS record""" if record is not None and not record.is_expired(now): - if record.type == _TYPE_A: + if record.type in [_TYPE_A, _TYPE_AAAA]: assert isinstance(record, DNSAddress) # if record.name == self.name: if record.name == self.server: @@ -1622,6 +1622,7 @@ def update_record(self, zc: 'Zeroconf', now: float, record: DNSRecord) -> None: self.priority = record.priority # self.address = None self.update_record(zc, now, zc.cache.get_by_details(self.server, _TYPE_A, _CLASS_IN)) + self.update_record(zc, now, zc.cache.get_by_details(self.server, _TYPE_AAAA, _CLASS_IN)) elif record.type == _TYPE_TXT: assert isinstance(record, DNSText) if record.name == self.name: @@ -1639,6 +1640,7 @@ def request(self, zc: 'Zeroconf', timeout: float) -> bool: record_types_for_check_cache = [(_TYPE_SRV, _CLASS_IN), (_TYPE_TXT, _CLASS_IN)] if self.server is not None: record_types_for_check_cache.append((_TYPE_A, _CLASS_IN)) + record_types_for_check_cache.append((_TYPE_AAAA, _CLASS_IN)) for record_type in record_types_for_check_cache: cached = zc.cache.get_by_details(self.name, *record_type) if cached: