[PATCH] discover/network: Mark interfaces configured once configured

Samuel Mendoza-Jonas sam at mendozajonas.com
Thu Jun 16 15:31:27 AEST 2016


In some cases additional netlink messages can be received for an
already-configured interface without any relevant changes. This can
result in multiple DHCP requests for the same interface.
Once an interface has been configured mark it as IFSTATE_CONFIGURED
to avoid configuring it again.

Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 discover/network.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/discover/network.c b/discover/network.c
index c072eec..4b79015 100644
--- a/discover/network.c
+++ b/discover/network.c
@@ -398,8 +398,11 @@ static void configure_interface(struct network *network,
 			interface->state = IFSTATE_NEW;
 		else if (!link)
 			interface->state = IFSTATE_UP_WAITING_LINK;
-		else
+		else {
+			pb_debug("network: skipping configured interface %s\n",
+					interface->name);
 			return;
+		}
 	}
 
 	/* always up the lookback, no other handling required */
@@ -451,6 +454,8 @@ static void configure_interface(struct network *network,
 	} else if (config->method == CONFIG_METHOD_STATIC) {
 		configure_interface_static(network, interface, config);
 	}
+
+	interface->state = IFSTATE_CONFIGURED;
 }
 
 static int network_handle_nlmsg(struct network *network, struct nlmsghdr *nlmsg)
-- 
2.8.3



More information about the Petitboot mailing list