From: Samuel Mendoza-Jonas Date: Thu, 16 Jun 2016 05:18:30 +0000 (+1000) Subject: discover/network: Mark interfaces configured once configured X-Git-Tag: v1.2.1~1 X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=6a6d2c94bd5c001750e8eaa133a61a87964efa70;ds=inline discover/network: Mark interfaces configured once configured 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 --- 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)