From 85218c601b0f5895f9025910643761930c02eb1a Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 2 May 2011 22:20:30 +0200 Subject: [PATCH 1/1] clear all remaining addresses on interface down --- interface-ip.c | 2 +- interface.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/interface-ip.c b/interface-ip.c index 20df281..797be58 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -40,7 +40,7 @@ void interface_del_ctx_addr(struct interface *iface, void *ctx) struct interface_addr *addr, *tmp; list_for_each_entry_safe(addr, tmp, &iface->address, list) { - if (addr->ctx != ctx) + if (ctx && addr->ctx != ctx) continue; interface_del_address(iface, addr); diff --git a/interface.c b/interface.c index 88cf682..0a53151 100644 --- a/interface.c +++ b/interface.c @@ -64,6 +64,7 @@ interface_event(struct interface *iface, enum interface_event ev) static void mark_interface_down(struct interface *iface) { + interface_del_ctx_addr(iface, NULL); release_device(iface->main_dev.dev); iface->state = IFS_DOWN; } -- 2.11.0