diff --git a/supervisor/dbus/network/setting/__init__.py b/supervisor/dbus/network/setting/__init__.py index 5cd241492..3e2a0583a 100644 --- a/supervisor/dbus/network/setting/__init__.py +++ b/supervisor/dbus/network/setting/__init__.py @@ -122,7 +122,12 @@ class NetworkSetting(DBusInterfaceProxy): ) _merge_settings_attribute(new_settings, settings, CONF_ATTR_VLAN) _merge_settings_attribute(new_settings, settings, CONF_ATTR_IPV4) + if "addresses" in new_settings[CONF_ATTR_IPV4]: + del new_settings[CONF_ATTR_IPV4]["addresses"] + _merge_settings_attribute(new_settings, settings, CONF_ATTR_IPV6) + if "addresses" in new_settings[CONF_ATTR_IPV6]: + del new_settings[CONF_ATTR_IPV6]["addresses"] return await self.dbus.Settings.Connection.Update(("a{sa{sv}}", new_settings)) diff --git a/tests/dbus/network/setting/test_init.py b/tests/dbus/network/setting/test_init.py index d5c0599a6..55c6d3abb 100644 --- a/tests/dbus/network/setting/test_init.py +++ b/tests/dbus/network/setting/test_init.py @@ -97,6 +97,7 @@ async def mock_call_dbus_get_settings_signature( "s", "192.168.2.148" ) assert settings["ipv4"]["address-data"].value[0]["prefix"] == Variant("u", 24) + assert "addresses" not in settings["ipv4"] assert len(settings["ipv4"]["route-data"].value) == 1 assert settings["ipv4"]["route-data"].value[0]["dest"] == Variant( "s", "192.168.122.0" @@ -112,6 +113,7 @@ async def mock_call_dbus_get_settings_signature( assert "ipv6" in settings assert settings["ipv6"]["method"] == Variant("s", "auto") assert settings["ipv6"]["addr-gen-mode"] == Variant("i", 0) + assert "addresses" not in settings["ipv6"] assert "proxy" in settings