From: Donald Sharp Date: Mon, 22 May 2017 20:12:41 +0000 (-0400) Subject: pimd: Create macro to get appropriate pim instance X-Git-Tag: frr-4.0-dev~468^2~84 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=ae4a6b57ca01f791663b4c82018eff8e8ef69886;p=mirror%2Ffrr.git pimd: Create macro to get appropriate pim instance Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 059bd4e6f4..5a0737fcfe 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -4524,8 +4524,7 @@ DEFUN (ip_pim_rp, "ip address of RP\n" "Group Address range to cover\n") { - VTY_DECLVAR_CONTEXT(vrf, vrf); - struct pim_instance *pim = vrf->info; + PIM_DECLVAR_CONTEXT(vrf, pim); int idx_ipv4 = 3; if (argc == (idx_ipv4 + 1)) diff --git a/pimd/pim_cmd.h b/pimd/pim_cmd.h index 64751d8682..8867514876 100644 --- a/pimd/pim_cmd.h +++ b/pimd/pim_cmd.h @@ -66,4 +66,13 @@ void pim_cmd_init(void); +/* + * Special Macro to allow us to get the correct pim_instance; + */ +#define PIM_DECLVAR_CONTEXT(A, B) \ + struct vrf *A = VTY_GET_CONTEXT(vrf); \ + struct pim_instance *B = \ + (vrf) ? vrf->info : pim_get_pim_instance(VRF_DEFAULT); \ + vrf = (vrf) ? vrf : pim->vrf; + #endif /* PIM_CMD_H */