1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-14 07:43:48 +01:00
This commit is contained in:
J. Nick Koston
2025-09-11 18:54:06 -05:00
parent 158236f819
commit 23d82f8368
3 changed files with 9 additions and 4 deletions

View File

@@ -28,8 +28,10 @@ class DNSCache:
self._cache: dict[str, tuple[float, list[str] | Exception]] = {}
self._ttl = ttl
def get_cached(self, hostname: str, now_monotonic: float) -> list[str] | None:
"""Get cached address without triggering resolution.
def get_cached_addresses(
self, hostname: str, now_monotonic: float
) -> list[str] | None:
"""Get cached addresses without triggering resolution.
Returns None if not in cache, list of addresses if found.
"""

View File

@@ -2,6 +2,7 @@ from __future__ import annotations
import asyncio
import logging
import time
import typing
from zeroconf import AddressResolver, IPVersion
@@ -67,7 +68,9 @@ class MDNSStatus:
# Try to load from zeroconf cache without triggering resolution
info = AddressResolver(f"{base_name}.local.")
if info.load_from_cache(self.aiozc.zeroconf):
# Pass current time in milliseconds for cache expiry checking
now = time.time() * 1000
if info.load_from_cache(self.aiozc.zeroconf, now):
return info.parsed_scoped_addresses(IPVersion.All)
return None

View File

@@ -364,7 +364,7 @@ class EsphomePortCommandWebSocket(EsphomeCommandWebSocket):
)
else:
# Check DNS cache for non-.local addresses
cached = dashboard.dns_cache.get_cached(use_address, now)
cached = dashboard.dns_cache.get_cached_addresses(use_address, now)
_LOGGER.debug(
"DNS cache lookup for address %s: %s", use_address, cached
)