From 0145acd2aebb8589262bd3a735f81a953e72bdd3 Mon Sep 17 00:00:00 2001 From: Jack Thomasson <4302889+jkt628@users.noreply.github.com> Date: Wed, 29 Jan 2025 10:50:53 -0500 Subject: [PATCH] SHARED **is** the gateway --- supervisor/dbus/network/setting/generate.py | 36 +++++++++++---------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/supervisor/dbus/network/setting/generate.py b/supervisor/dbus/network/setting/generate.py index 160c8f6bd9e..fc0cdccc144 100644 --- a/supervisor/dbus/network/setting/generate.py +++ b/supervisor/dbus/network/setting/generate.py @@ -52,31 +52,33 @@ from ....host.configuration import Interface +def _get_address_data(ipv4setting) -> Variant: + address_data = [] + for address in ipv4setting.address: + address_data.append( + { + "address": Variant("s", str(address.ip)), + "prefix": Variant("u", int(address.with_prefixlen.split("/")[-1])), + } + ) + + return Variant("aa{sv}", address_data) + + def _get_ipv4_connection_settings(ipv4setting) -> dict: ipv4 = {} if not ipv4setting or ipv4setting.method == InterfaceMethod.AUTO: ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "auto") elif ipv4setting.method == InterfaceMethod.DISABLED: ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "disabled") - elif ipv4setting.method in {InterfaceMethod.STATIC, InterfaceMethod.SHARED}: - ipv4[CONF_ATTR_IPV4_METHOD] = ( - Variant("s", "manual") - if ipv4setting.method == InterfaceMethod.STATIC - else Variant("s", "shared") - ) - - address_data = [] - for address in ipv4setting.address: - address_data.append( - { - "address": Variant("s", str(address.ip)), - "prefix": Variant("u", int(address.with_prefixlen.split("/")[-1])), - } - ) - - ipv4[CONF_ATTR_IPV4_ADDRESS_DATA] = Variant("aa{sv}", address_data) + elif ipv4setting.method == InterfaceMethod.STATIC: + ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "manual") + ipv4[CONF_ATTR_IPV4_ADDRESS_DATA] = _get_address_data(ipv4setting) if ipv4setting.gateway: ipv4[CONF_ATTR_IPV4_GATEWAY] = Variant("s", str(ipv4setting.gateway)) + elif ipv4setting.method == InterfaceMethod.SHARED: + ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "shared") + ipv4[CONF_ATTR_IPV4_ADDRESS_DATA] = _get_address_data(ipv4setting) else: raise RuntimeError("Invalid IPv4 InterfaceMethod")