]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_zebra.c
Merge pull request #5430 from taruta811/build-docker-centos
[mirror_frr.git] / pimd / pim_zebra.c
index b517b998e35240119d6954aa92f2bf1a4dcf72ce..b999188a9b804f178ed135c7f95329ab901a6064 100644 (file)
@@ -234,7 +234,7 @@ static int pim_zebra_if_address_del(ZAPI_CALLBACK_ARGS)
                pim_i_am_rp_re_evaluate(pim);
        }
 
-       connected_free(c);
+       connected_free(&c);
        return 0;
 }
 
@@ -859,27 +859,24 @@ void igmp_source_forward_start(struct pim_instance *pim,
                }
        }
 
-       result = pim_channel_add_oif(source->source_channel_oil,
-                                    group->group_igmp_sock->interface,
-                                    PIM_OIF_FLAG_PROTO_IGMP);
-       if (result) {
-               if (PIM_DEBUG_MROUTE) {
-                       zlog_warn("%s: add_oif() failed with return=%d",
-                                 __func__, result);
+       if (PIM_I_am_DR(pim_oif)) {
+               result = pim_channel_add_oif(source->source_channel_oil,
+                                            group->group_igmp_sock->interface,
+                                            PIM_OIF_FLAG_PROTO_IGMP);
+               if (result) {
+                       if (PIM_DEBUG_MROUTE) {
+                               zlog_warn("%s: add_oif() failed with return=%d",
+                                         __func__, result);
+                       }
+                       return;
                }
-               return;
-       }
-
-       if (!(PIM_I_am_DR(pim_oif))) {
+       } else {
                if (PIM_DEBUG_IGMP_TRACE)
                        zlog_debug("%s: %s was received on %s interface but we are not DR for that interface",
                                   __PRETTY_FUNCTION__,
                                   pim_str_sg_dump(&sg),
                                   group->group_igmp_sock->interface->name);
 
-               pim_channel_del_oif(source->source_channel_oil,
-                                   group->group_igmp_sock->interface,
-                                   PIM_OIF_FLAG_PROTO_IGMP);
                return;
        }
        /*