]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: Allow secondary address comparisons to work
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 23 May 2017 18:50:45 +0000 (14:50 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 23 May 2017 19:31:37 +0000 (15:31 -0400)
The secondary address comparison done to determine if we are
an RP for a specified address was comparing A.B.C.D/32 to A.B.C.D/0
because when we created the rp_info we were not setting the prefixlen

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_rp.c

index d3d9beb0537a088c890ea5648b2d47dd99411d41..3dde187081addd4b35e02007383c1e6944fa5db7 100644 (file)
@@ -98,6 +98,7 @@ pim_rp_init (void)
   str2prefix ("224.0.0.0/4", &rp_info->group);
   rp_info->group.family = AF_INET;
   rp_info->rp.rpf_addr.family = AF_INET;
+  rp_info->rp.rpf_addr.prefixlen = IPV4_MAX_PREFIXLEN;
   rp_info->rp.rpf_addr.u.prefix4.s_addr = INADDR_NONE;
   tail = rp_info;
 
@@ -306,6 +307,7 @@ pim_rp_new (const char *rp, const char *group_range, const char *plist)
     }
 
   rp_info->rp.rpf_addr.family = AF_INET;
+  rp_info->rp.rpf_addr.prefixlen = IPV4_MAX_PREFIXLEN;
   result = inet_pton (rp_info->rp.rpf_addr.family, rp, &rp_info->rp.rpf_addr.u.prefix4);
 
   if (result <= 0)