From 9770ef24231faa3ee7c9fab7855e04fa3dd57f2f Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Wed, 29 Jun 2022 08:40:57 +0200
Subject: [PATCH] dhcpserver implies static interface for --networkmanager

---
 src/hostinfo/networkmanager.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/hostinfo/networkmanager.py b/src/hostinfo/networkmanager.py
index 503146e..5b8f833 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'
-- 
GitLab