]> git.proxmox.com Git - mirror_frr.git/blobdiff - ldpd/lde.c
*: remove --enable-tcp-zebra, rework ZAPI path
[mirror_frr.git] / ldpd / lde.c
index 602dc8805e54096a2547afce1847170884566252..11fcbfa46dba8af6d8fbd0f9893cd579c5214baa 100644 (file)
@@ -37,6 +37,7 @@
 #include "zclient.h"
 #include "stream.h"
 #include "network.h"
+#include "libfrr.h"
 
 static void             lde_shutdown(void);
 static int              lde_dispatch_imsg(struct thread *);
@@ -170,7 +171,8 @@ lde_init(struct ldpd_init *init)
        lde_gc_start_timer();
 
        /* Init synchronous zclient and label list */
-       zclient_serv_path_set(init->zclient_serv_path);
+       frr_zclient_addr(&zclient_addr, &zclient_addr_len,
+                        init->zclient_serv_path);
        zclient_sync_init(init->instance);
        lde_label_list_init();
 }
@@ -1328,7 +1330,6 @@ lde_nbr_addr_update(struct lde_nbr *ln, struct lde_addr *lde_addr, int removed)
        struct lde_map          *me;
 
        RB_FOREACH(fec, fec_tree, &ln->recv_map) {
-               fn = (struct fec_node *)fec_find(&ft, fec);
                switch (fec->type) {
                case FEC_TYPE_IPV4:
                        if (lde_addr->af != AF_INET)
@@ -1342,6 +1343,11 @@ lde_nbr_addr_update(struct lde_nbr *ln, struct lde_addr *lde_addr, int removed)
                        continue;
                }
 
+               fn = (struct fec_node *)fec_find(&ft, fec);
+               if (fn == NULL)
+                       /* shouldn't happen */
+                       continue;
+
                LIST_FOREACH(fnh, &fn->nexthops, entry) {
                        if (ldp_addrcmp(fnh->af, &fnh->nexthop,
                            &lde_addr->addr))