---
 ldpe.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ldpe.c b/ldpe.c
index f643272..d422603 100644
--- a/ldpe.c
+++ b/ldpe.c
@@ -414,17 +414,18 @@ ldpe_dispatch_main(int fd, short event, void *bula)
                                break;
 
                        LIST_REMOVE(if_addr, global_entry);
+                       iface = if_lookup(kaddr->ifindex);
+                       if (iface) {
+                               LIST_REMOVE(if_addr, iface_entry);
+                               if_fsm(iface, IF_EVT_DELADDR);
+                       }
+
                        RB_FOREACH(nbr, nbr_id_head, &nbrs_by_id) {
                                if (nbr->state != NBR_STA_OPER)
                                        continue;
                                send_address_withdraw(nbr, if_addr);
                        }
 
-                       iface = if_lookup(kaddr->ifindex);
-                       if (iface) {
-                               LIST_REMOVE(if_addr, iface_entry);
-                               if_fsm(iface, IF_EVT_DELADDR);
-                       }
                        free(if_addr);
                        break;
                case IMSG_RECONF_CONF:
-- 
1.9.1

Reply via email to