Fix homekit creating executor jobs to resolve default listen ips (#112522)

This commit is contained in:
J. Nick Koston 2024-03-06 11:46:23 -10:00 committed by GitHub
parent b8e39bd968
commit 675b1a392b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 8 deletions

View file

@ -7,6 +7,7 @@ from copy import deepcopy
import ipaddress
import logging
import os
import socket
from typing import Any, cast
from aiohttp import web
@ -149,6 +150,8 @@ PORT_CLEANUP_CHECK_INTERVAL_SECS = 1
_HOMEKIT_CONFIG_UPDATE_TIME = (
10 # number of seconds to wait for homekit to see the c# change
)
_HAS_IPV6 = hasattr(socket, "AF_INET6")
_DEFAULT_BIND = ["0.0.0.0", "::"] if _HAS_IPV6 else ["0.0.0.0"]
def _has_all_unique_names_and_ports(
@ -308,7 +311,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
_LOGGER.debug("Begin setup HomeKit for %s", name)
# ip_address and advertise_ip are yaml only
ip_address = conf.get(CONF_IP_ADDRESS, [None])
ip_address = conf.get(CONF_IP_ADDRESS, _DEFAULT_BIND)
advertise_ips: list[str] = conf.get(
CONF_ADVERTISE_IP
) or await network.async_get_announce_addresses(hass)

View file

@ -80,6 +80,8 @@ from tests.common import MockConfigEntry, get_fixture_path
IP_ADDRESS = "127.0.0.1"
DEFAULT_LISTEN = ["0.0.0.0", "::"]
def generate_filter(
include_domains,
@ -173,7 +175,7 @@ async def test_setup_min(hass: HomeAssistant, mock_async_zeroconf: None) -> None
hass,
BRIDGE_NAME,
DEFAULT_PORT,
[None],
DEFAULT_LISTEN,
ANY,
ANY,
{},
@ -215,7 +217,7 @@ async def test_removing_entry(
hass,
BRIDGE_NAME,
DEFAULT_PORT,
[None],
DEFAULT_LISTEN,
ANY,
ANY,
{},
@ -354,7 +356,7 @@ async def test_homekit_with_single_advertise_ips(
ANY,
entry.title,
loop=hass.loop,
address=[None],
address=DEFAULT_LISTEN,
port=ANY,
persist_file=ANY,
advertised_address="1.3.4.4",
@ -393,7 +395,7 @@ async def test_homekit_with_many_advertise_ips(
ANY,
entry.title,
loop=hass.loop,
address=[None],
address=DEFAULT_LISTEN,
port=ANY,
persist_file=ANY,
advertised_address=["1.3.4.4", "4.3.2.2"],
@ -1678,7 +1680,7 @@ async def test_yaml_updates_update_config_entry_for_name(
hass,
BRIDGE_NAME,
12345,
[None],
DEFAULT_LISTEN,
ANY,
ANY,
{},
@ -2049,7 +2051,7 @@ async def test_reload(hass: HomeAssistant, mock_async_zeroconf: None) -> None:
hass,
"reloadable",
12345,
[None],
DEFAULT_LISTEN,
ANY,
False,
{},
@ -2084,7 +2086,7 @@ async def test_reload(hass: HomeAssistant, mock_async_zeroconf: None) -> None:
hass,
"reloadable",
45678,
[None],
DEFAULT_LISTEN,
ANY,
False,
{},