diff --git a/src/hostinfo/networkmanager.py b/src/hostinfo/networkmanager.py index 503146e24327509bfc6ce6a9236a953793c5843d..5b8f833a1e5e799a69286230601c97e61785857d 100644 --- a/src/hostinfo/networkmanager.py +++ b/src/hostinfo/networkmanager.py @@ -217,6 +217,15 @@ class Network(object): network = Network() +def interface_is_static(i): + if i._static_: + return True + if i._ip_._dhcpserver_: + return True + if i._ipv6_._dhcpserver_: + return True + return False + def ipv6_dhcp_duid(interface): duid = set([interface.nm_ipv6_dhcp_duid[0:]]) for ipv6 in interface._ipv6_: @@ -264,7 +273,7 @@ def update_settings(settings, update): def configure_networking(connection, interface, settings=None): # Construct ipv4 and ipv6 data to be set on interface update = dict(settings_to_update(settings)) - if not interface._static_: + if not interface_is_static(interface): update['connection', 'zone'] = None update['ipv4', 'method'] = 'auto' update['ipv6', 'method'] = 'auto'