]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Fix pim_upstream_find to match on INADDR_ANY for source
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 4 Nov 2015 00:39:40 +0000 (16:39 -0800)
committerDonald Sharp <sharpd@cumulusnetwroks.com>
Thu, 26 May 2016 00:38:35 +0000 (20:38 -0400)
Fix the pim_upstream_find code to match on INADDR_ANY for source.

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

index 15f96c2e4eb8e9e2910a86cbac365c535bd464ca..c0351708753079f74afea73e6bbef7aa52d7210f 100644 (file)
@@ -406,11 +406,11 @@ struct pim_upstream *pim_upstream_find(struct in_addr source_addr,
   struct pim_upstream *up;
 
   for (ALL_LIST_ELEMENTS_RO(qpim_upstream_list, up_node, up)) {
-    if (
-       (source_addr.s_addr == up->source_addr.s_addr) &&
-       (group_addr.s_addr == up->group_addr.s_addr)
-       ) {
-      return up;
+    if (group_addr.s_addr == up->group_addr.s_addr) {
+      if ((up->source_addr.s_addr == INADDR_ANY) ||
+         (source_addr.s_addr == up->source_addr.s_addr)) {
+       return up;
+      }
     }
   }