]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: refactor `pim_rp_set_upstream_addr` 16299/head
authorDavid Lamparter <equinox@opensourcerouting.org>
Wed, 26 Jun 2024 14:13:50 +0000 (16:13 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Wed, 26 Jun 2024 14:15:25 +0000 (16:15 +0200)
Somehow this tiny function ended up being written in a very convoluted
way that enabled the braces mixup in the previous commit.  Rewrite it to
be less confusing.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
pimd/pim_rp.c

index 4703ff8a6a0a77cffb1bfc3324ef61419eac41de..49be9c0a733981649f439de071a2a676f99bc54c 100644 (file)
@@ -1107,16 +1107,17 @@ int pim_rp_set_upstream_addr(struct pim_instance *pim, pim_addr *up,
                             pim_addr source, pim_addr group)
 {
        struct rp_info *rp_info;
-       struct prefix g;
+       struct prefix g = {};
 
-       memset(&g, 0, sizeof(g));
+       if (!pim_addr_is_any(source)) {
+               *up = source;
+               return 1;
+       }
 
        pim_addr_to_prefix(&g, group);
-
        rp_info = pim_rp_find_match_group(pim, &g);
 
-       if ((!rp_info || (pim_rpf_addr_is_inaddr_any(&rp_info->rp))) &&
-                        (pim_addr_is_any(source))) {
+       if (!rp_info || pim_rpf_addr_is_inaddr_any(&rp_info->rp)) {
                if (PIM_DEBUG_PIM_NHT_RP)
                        zlog_debug("%s: Received a (*,G) with no RP configured",
                                   __func__);
@@ -1124,11 +1125,7 @@ int pim_rp_set_upstream_addr(struct pim_instance *pim, pim_addr *up,
                return 0;
        }
 
-       if (pim_addr_is_any(source))
-               *up = rp_info->rp.rpf_addr;
-       else
-               *up = source;
-
+       *up = rp_info->rp.rpf_addr;
        return 1;
 }