feat: use server_key when processing DNSService records (#1238) · python-zeroconf/python-zeroconf@cc8feb1

2 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -440,8 +440,8 @@ async def async_unregister_service(self, info: ServiceInfo) -> Awaitable:

440440

# If another server uses the same addresses, we do not want to send

441441

# goodbye packets for the address records

442442
443-

assert info.server is not None

444-

entries = self.registry.async_get_infos_server(info.server.lower())

443+

assert info.server_key is not None

444+

entries = self.registry.async_get_infos_server(info.server_key)

445445

broadcast_addresses = not bool(entries)

446446

return asyncio.ensure_future(

447447

self._async_broadcast_service(info, _UNREGISTER_TIME, 0, broadcast_addresses)

Original file line numberDiff line numberDiff line change

@@ -472,7 +472,7 @@ def _process_record_threadsafe(self, zc: 'Zeroconf', record: DNSRecord, now: flo

472472

old_server_key = self.server_key

473473

self.name = record.name

474474

self.server = record.server

475-

self.server_key = record.server.lower()

475+

self.server_key = record.server_key

476476

self.port = record.port

477477

self.weight = record.weight

478478

self.priority = record.priority

@@ -586,7 +586,7 @@ def set_server_if_missing(self) -> None:

586586

"""

587587

if self.server is None:

588588

self.server = self._name

589-

self.server_key = self.server.lower()

589+

self.server_key = self.key

590590
591591

def load_from_cache(self, zc: 'Zeroconf', now: Optional[float] = None) -> bool:

592592

"""Populate the service info from the cache.