diff options
Diffstat (limited to 'pimd/pim_iface.c')
| -rw-r--r-- | pimd/pim_iface.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index 0b28a3e84c..eb19cf4ddf 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -156,14 +156,12 @@ struct pim_interface *pim_if_new(struct interface *ifp, bool igmp, bool pim, PIM_IF_DO_IGMP_LISTEN_ALLROUTERS(pim_ifp->options); pim_ifp->igmp_join_list = NULL; - pim_ifp->igmp_socket_list = NULL; pim_ifp->pim_neighbor_list = NULL; pim_ifp->upstream_switch_list = NULL; pim_ifp->pim_generation_id = 0; /* list of struct igmp_sock */ - pim_ifp->igmp_socket_list = list_new(); - pim_ifp->igmp_socket_list->del = (void (*)(void *))igmp_sock_free; + pim_igmp_if_init(pim_ifp, ifp); /* list of struct pim_neighbor */ pim_ifp->pim_neighbor_list = list_new(); @@ -214,7 +212,8 @@ void pim_if_delete(struct interface *ifp) pim_if_del_vif(ifp); pim_ifp->pim->mcast_if_count--; - list_delete(&pim_ifp->igmp_socket_list); + pim_igmp_if_fini(pim_ifp); + list_delete(&pim_ifp->pim_neighbor_list); list_delete(&pim_ifp->upstream_switch_list); list_delete(&pim_ifp->sec_addr_list); |
