summaryrefslogtreecommitdiffstats
path: root/discover/network.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2014-04-02 15:44:44 +0800
committerJeremy Kerr <jk@ozlabs.org>2014-04-02 15:44:44 +0800
commit71dfb52e615d66c0ed595f0c3b0f406deb959b63 (patch)
treea6ad032c68684d548e9dae26e84ddd73e3889ff8 /discover/network.c
parentbebb24a9f49cb4eb81df2aa3dd9de94db965536d (diff)
downloadtalos-petitboot-71dfb52e615d66c0ed595f0c3b0f406deb959b63.tar.gz
talos-petitboot-71dfb52e615d66c0ed595f0c3b0f406deb959b63.zip
discover/network: flush addresses when bringing an interface down
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/network.c')
-rw-r--r--discover/network.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/discover/network.c b/discover/network.c
index ca4cc44..2b7e94c 100644
--- a/discover/network.c
+++ b/discover/network.c
@@ -181,6 +181,15 @@ static int interface_change(struct interface *interface, bool up)
process_release(interface->udhcpc_process);
}
+ if (!up) {
+ rc = process_run_simple(interface, pb_system_apps.ip,
+ "address", "flush", "dev", interface->name,
+ NULL);
+ if (rc)
+ pb_log("failed to flush addresses from interface %s\n",
+ interface->name);
+ }
+
rc = process_run_simple(interface, pb_system_apps.ip,
"link", "set", interface->name, statestr, NULL);
if (rc) {
OpenPOWER on IntegriCloud