]> git.proxmox.com Git - mirror_frr.git/blobdiff - ldpd/interface.c
Merge pull request #4899 from ton31337/fix/no_aspath_prepend_last_7.1
[mirror_frr.git] / ldpd / interface.c
index ac48520f7bd4710dc2591326d6ccacf33739fbea..8b45703d22f7e3b535dbcd96ad8e202a515d7f06 100644 (file)
@@ -45,7 +45,7 @@ RB_GENERATE(iface_head, iface, entry, iface_compare)
 static __inline int
 iface_compare(const struct iface *a, const struct iface *b)
 {
-       return (strcmp(a->name, b->name));
+       return if_cmp_name_func(a->name, b->name);
 }
 
 struct iface *
@@ -103,6 +103,7 @@ ldpe_if_exit(struct iface *iface)
 
        while ((if_addr = LIST_FIRST(&iface->addr_list)) != NULL) {
                LIST_REMOVE(if_addr, entry);
+               assert(if_addr != LIST_FIRST(&iface->addr_list));
                free(if_addr);
        }
 }
@@ -305,8 +306,11 @@ if_reset(struct iface *iface, int af)
        ia = iface_af_get(iface, af);
        if_stop_hello_timer(ia);
 
-       while ((adj = RB_ROOT(ia_adj_head, &ia->adj_tree)) != NULL)
+       while (!RB_EMPTY(ia_adj_head, &ia->adj_tree)) {
+               adj = RB_ROOT(ia_adj_head, &ia->adj_tree);
+
                adj_del(adj, S_SHUTDOWN);
+       }
 
        /* try to cleanup */
        switch (af) {