From: Jeremy Kerr Date: Thu, 16 Jan 2014 01:13:20 +0000 (+0800) Subject: discover: Bring down configured interfaces on discover server exit. X-Git-Tag: v1.0.0~271 X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=729bcafedd3b117c031c413fac2e2d2096d62510;ds=sidebyside discover: Bring down configured interfaces on discover server exit. We want to down the interfaces that we brought up, so hook up the network_shutdown function to the discover exit path. Also, we only want to down interfaces that we've configured, and exclude lo. Signed-off-by: Jeremy Kerr --- diff --git a/discover/network.c b/discover/network.c index 7ddecc0..8cc0183 100644 --- a/discover/network.c +++ b/discover/network.c @@ -582,8 +582,13 @@ int network_shutdown(struct network *network) if (network->waiter) waiter_remove(network->waiter); - list_for_each_entry(&network->interfaces, interface, list) + list_for_each_entry(&network->interfaces, interface, list) { + if (interface->state == IFSTATE_IGNORED) + continue; + if (!strcmp(interface->name, "lo")) + continue; interface_down(interface); + } close(network->netlink_sd); talloc_free(network); diff --git a/discover/pb-discover.c b/discover/pb-discover.c index b154130..d8708a3 100644 --- a/discover/pb-discover.c +++ b/discover/pb-discover.c @@ -200,6 +200,7 @@ int main(int argc, char *argv[]) break; } + network_shutdown(network); device_handler_destroy(handler); user_event_destroy(uev); udev_destroy(udev);