From b206566b1611bea071267b5ce1320aed37c64ea1 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Sat, 20 May 2017 13:54:31 -0400 Subject: [PATCH] pimd: Remove pimg from pim_register.c Signed-off-by: Donald Sharp --- pimd/pim_pim.c | 2 +- pimd/pim_register.c | 8 +++++--- pimd/pim_register.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c index 51b8e9a1c..8e8075e2a 100644 --- a/pimd/pim_pim.c +++ b/pimd/pim_pim.c @@ -238,7 +238,7 @@ int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len) pim_msg_len - PIM_MSG_HEADER_LEN); break; case PIM_MSG_TYPE_REG_STOP: - return pim_register_stop_recv(pim_msg + PIM_MSG_HEADER_LEN, + return pim_register_stop_recv(ifp, pim_msg + PIM_MSG_HEADER_LEN, pim_msg_len - PIM_MSG_HEADER_LEN); break; case PIM_MSG_TYPE_JOIN_PRUNE: diff --git a/pimd/pim_register.c b/pimd/pim_register.c index bc7c5e3e0..8ba030d2d 100644 --- a/pimd/pim_register.c +++ b/pimd/pim_register.c @@ -109,8 +109,10 @@ void pim_register_stop_send(struct interface *ifp, struct prefix_sg *sg, ++pinfo->pim_ifstat_reg_stop_send; } -int pim_register_stop_recv(uint8_t *buf, int buf_size) +int pim_register_stop_recv(struct interface *ifp, uint8_t *buf, int buf_size) { + struct pim_interface *pim_ifp = ifp->info; + struct pim_instance *pim = pim_ifp->pim; struct pim_upstream *upstream = NULL; struct prefix source; struct prefix_sg sg; @@ -123,7 +125,7 @@ int pim_register_stop_recv(uint8_t *buf, int buf_size) pim_parse_addr_ucast(&source, buf, buf_size); sg.src = source.u.prefix4; - upstream = pim_upstream_find(pimg, &sg); + upstream = pim_upstream_find(pim, &sg); if (!upstream) { return 0; } @@ -138,7 +140,7 @@ int pim_register_stop_recv(uint8_t *buf, int buf_size) break; case PIM_REG_JOIN: upstream->reg_state = PIM_REG_PRUNE; - pim_channel_del_oif(upstream->channel_oil, pimg->regiface, + pim_channel_del_oif(upstream->channel_oil, pim->regiface, PIM_OIF_FLAG_PROTO_PIM); pim_upstream_start_register_stop_timer(upstream, 0); break; diff --git a/pimd/pim_register.h b/pimd/pim_register.h index ad3deb2b2..906d093bb 100644 --- a/pimd/pim_register.h +++ b/pimd/pim_register.h @@ -30,7 +30,7 @@ #define PIM_MSG_REGISTER_LEN (8) #define PIM_MSG_REGISTER_STOP_LEN (4) -int pim_register_stop_recv(uint8_t *buf, int buf_size); +int pim_register_stop_recv(struct interface *ifp, uint8_t *buf, int buf_size); int pim_register_recv(struct interface *ifp, struct in_addr dest_addr, struct in_addr src_addr, uint8_t *tlv_buf, -- 2.39.5