From 729bcafedd3b117c031c413fac2e2d2096d62510 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Thu, 16 Jan 2014 09:13:20 +0800 Subject: [PATCH] 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 --- discover/network.c | 7 ++++++- discover/pb-discover.c | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) 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); -- 2.39.2