From 516812e8428c9e19917a7cfe23719ab0bbb556bb Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 1 Sep 2023 23:28:14 -0500 Subject: [PATCH 1/3] fix: remove useless calls in ServiceInfo --- src/zeroconf/_services/info.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/zeroconf/_services/info.py b/src/zeroconf/_services/info.py index 19e4ce29..2c79f585 100644 --- a/src/zeroconf/_services/info.py +++ b/src/zeroconf/_services/info.py @@ -427,7 +427,10 @@ def _process_record_threadsafe(self, zc: 'Zeroconf', record: DNSRecord, now: flo return False record_key = record.key - if record_key == self.server_key and type(record) is DNSAddress: + record_type = type(record) + if record_key == self.server_key and record_type is DNSAddress: + if TYPE_CHECKING: + assert isinstance(record, DNSAddress) try: ip_addr = _cached_ip_addresses(record.address) except ValueError as ex: @@ -435,9 +438,6 @@ def _process_record_threadsafe(self, zc: 'Zeroconf', record: DNSRecord, now: flo return False if type(ip_addr) is IPv4Address: - if self._ipv4_addresses: - self._set_ipv4_addresses_from_cache(zc, now) - ipv4_addresses = self._ipv4_addresses if ip_addr not in ipv4_addresses: ipv4_addresses.insert(0, ip_addr) @@ -448,9 +448,6 @@ def _process_record_threadsafe(self, zc: 'Zeroconf', record: DNSRecord, now: flo return False - if not self._ipv6_addresses: - self._set_ipv6_addresses_from_cache(zc, now) - ipv6_addresses = self._ipv6_addresses if ip_addr not in self._ipv6_addresses: ipv6_addresses.insert(0, ip_addr) @@ -464,11 +461,15 @@ def _process_record_threadsafe(self, zc: 'Zeroconf', record: DNSRecord, now: flo if record_key != self.key: return False - if record.type == _TYPE_TXT and type(record) is DNSText: + if record_type is DNSText: + if TYPE_CHECKING: + assert isinstance(record, DNSText) self._set_text(record.text) return True - if record.type == _TYPE_SRV and type(record) is DNSService: + if record_type is DNSService: + if TYPE_CHECKING: + assert isinstance(record, DNSService) old_server_key = self.server_key self.name = record.name self.server = record.server From d72d24657ff5b2faac0cd4d4ce5f0f65b4b6ab1e Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 1 Sep 2023 23:37:21 -0500 Subject: [PATCH 2/3] fix: remove useless calls in ServiceInfo --- src/zeroconf/_services/info.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/zeroconf/_services/info.py b/src/zeroconf/_services/info.py index 2c79f585..f9e686a4 100644 --- a/src/zeroconf/_services/info.py +++ b/src/zeroconf/_services/info.py @@ -471,7 +471,8 @@ def _process_record_threadsafe(self, zc: 'Zeroconf', record: DNSRecord, now: flo if TYPE_CHECKING: assert isinstance(record, DNSService) old_server_key = self.server_key - self.name = record.name + self._name = record.name + self.key = record.key self.server = record.server self.server_key = record.server_key self.port = record.port From 7a2c66028acf2e8b06c8c0b56bebb1e810c8a82c Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 1 Sep 2023 23:40:16 -0500 Subject: [PATCH 3/3] fix: remove useless calls in ServiceInfo --- src/zeroconf/_services/info.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/zeroconf/_services/info.py b/src/zeroconf/_services/info.py index f9e686a4..a308fddb 100644 --- a/src/zeroconf/_services/info.py +++ b/src/zeroconf/_services/info.py @@ -579,7 +579,11 @@ def _get_address_records_from_cache_by_type(self, zc: 'Zeroconf', _type: int) -> """Get the addresses from the cache.""" if self.server_key is None: return [] - return cast("List[DNSAddress]", zc.cache.get_all_by_details(self.server_key, _type, _CLASS_IN)) + if TYPE_CHECKING: + records = cast("List[DNSAddress]", zc.cache.get_all_by_details(self.server_key, _type, _CLASS_IN)) + else: + records = zc.cache.get_all_by_details(self.server_key, _type, _CLASS_IN) + return records def set_server_if_missing(self) -> None: """Set the server if it is missing.