]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_neighbor.c
Merge pull request #5430 from taruta811/build-docker-centos
[mirror_frr.git] / pimd / pim_neighbor.c
index f402629653ca6ce9c7ab0811029fc69c7a84eb36..3f2aaf2bbed0ee210d8a94a8eca1859fdc5ef8ca 100644 (file)
@@ -255,8 +255,8 @@ void pim_neighbor_timer_reset(struct pim_neighbor *neigh, uint16_t holdtime)
                           neigh->interface->name);
        }
 
-       thread_add_timer(master, on_neighbor_timer, neigh, neigh->holdtime,
-                        &neigh->t_expire_timer);
+       thread_add_timer(router->master, on_neighbor_timer, neigh,
+                        neigh->holdtime, &neigh->t_expire_timer);
 }
 
 static int on_neighbor_jp_timer(struct thread *t)
@@ -277,8 +277,8 @@ static int on_neighbor_jp_timer(struct thread *t)
        rpf.rpf_addr.u.prefix4 = neigh->source_addr;
        pim_joinprune_send(&rpf, neigh->upstream_jp_agg);
 
-       thread_add_timer(master, on_neighbor_jp_timer, neigh, qpim_t_periodic,
-                        &neigh->jp_timer);
+       thread_add_timer(router->master, on_neighbor_jp_timer, neigh,
+                        router->t_periodic, &neigh->jp_timer);
 
        return 0;
 }
@@ -286,8 +286,8 @@ static int on_neighbor_jp_timer(struct thread *t)
 static void pim_neighbor_start_jp_timer(struct pim_neighbor *neigh)
 {
        THREAD_TIMER_OFF(neigh->jp_timer);
-       thread_add_timer(master, on_neighbor_jp_timer, neigh, qpim_t_periodic,
-                        &neigh->jp_timer);
+       thread_add_timer(router->master, on_neighbor_jp_timer, neigh,
+                        router->t_periodic, &neigh->jp_timer);
 }
 
 static struct pim_neighbor *
@@ -424,10 +424,11 @@ struct pim_neighbor *pim_neighbor_find_by_secondary(struct interface *ifp,
        struct pim_neighbor *neigh;
        struct prefix *p;
 
-       pim_ifp = ifp->info;
-       if (!pim_ifp)
+       if (!ifp || !ifp->info)
                return NULL;
 
+       pim_ifp = ifp->info;
+
        for (ALL_LIST_ELEMENTS_RO(pim_ifp->pim_neighbor_list, node, neigh)) {
                for (ALL_LIST_ELEMENTS_RO(neigh->prefix_list, pnode, p)) {
                        if (prefix_same(p, src))
@@ -540,7 +541,7 @@ pim_neighbor_add(struct interface *ifp, struct in_addr source_addr,
           Upon PIM neighbor UP, iterate all RPs and update
           nexthop cache with this neighbor.
         */
-       pim_resolve_rp_nh(pim_ifp->pim);
+       pim_resolve_rp_nh(pim_ifp->pim, neigh);
 
        pim_rp_setup(pim_ifp->pim);
 
@@ -766,7 +767,7 @@ static void delete_from_neigh_addr(struct interface *ifp,
                                                other_neigh_str, ifp->name);
 
                                        listnode_delete(neigh->prefix_list, p);
-                                       prefix_free(p);
+                                       prefix_free(&p);
                                }
                        }