mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Exclude global scope IPv6 when setting up zeroconf interfaces (#54632)
This commit is contained in:
parent
8d37fd08c7
commit
5d19575a84
@ -162,10 +162,14 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||||||
interfaces.extend(
|
interfaces.extend(
|
||||||
ipv4["address"]
|
ipv4["address"]
|
||||||
for ipv4 in ipv4s
|
for ipv4 in ipv4s
|
||||||
if not ipaddress.ip_address(ipv4["address"]).is_loopback
|
if not ipaddress.IPv4Address(ipv4["address"]).is_loopback
|
||||||
)
|
)
|
||||||
if adapter["ipv6"] and adapter["index"] not in interfaces:
|
if ipv6s := adapter["ipv6"]:
|
||||||
interfaces.append(adapter["index"])
|
for ipv6_addr in ipv6s:
|
||||||
|
address = ipv6_addr["address"]
|
||||||
|
v6_ip_address = ipaddress.IPv6Address(address)
|
||||||
|
if not v6_ip_address.is_global and not v6_ip_address.is_loopback:
|
||||||
|
interfaces.append(ipv6_addr["address"])
|
||||||
|
|
||||||
aio_zc = await _async_get_instance(hass, **zc_args)
|
aio_zc = await _async_get_instance(hass, **zc_args)
|
||||||
zeroconf = cast(HaZeroconf, aio_zc.zeroconf)
|
zeroconf = cast(HaZeroconf, aio_zc.zeroconf)
|
||||||
|
@ -799,7 +799,14 @@ async def test_async_detect_interfaces_setting_empty_route(hass, mock_async_zero
|
|||||||
hass.bus.async_fire(EVENT_HOMEASSISTANT_STARTED)
|
hass.bus.async_fire(EVENT_HOMEASSISTANT_STARTED)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert mock_zc.mock_calls[0] == call(
|
assert mock_zc.mock_calls[0] == call(
|
||||||
interfaces=[1, "192.168.1.5", "172.16.1.5", 3], ip_version=IPVersion.All
|
interfaces=[
|
||||||
|
"2001:db8::",
|
||||||
|
"fe80::1234:5678:9abc:def0",
|
||||||
|
"192.168.1.5",
|
||||||
|
"172.16.1.5",
|
||||||
|
"fe80::dead:beef:dead:beef",
|
||||||
|
],
|
||||||
|
ip_version=IPVersion.All,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -862,5 +869,6 @@ async def test_async_detect_interfaces_explicitly_set_ipv6(hass, mock_async_zero
|
|||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
assert mock_zc.mock_calls[0] == call(
|
assert mock_zc.mock_calls[0] == call(
|
||||||
interfaces=["192.168.1.5", 1], ip_version=IPVersion.All
|
interfaces=["192.168.1.5", "fe80::dead:beef:dead:beef"],
|
||||||
|
ip_version=IPVersion.All,
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user