summaryrefslogtreecommitdiff
path: root/pimd/pim_upstream.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_upstream.c')
-rw-r--r--pimd/pim_upstream.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c
index fbb7d84a25..4ae49c0fd4 100644
--- a/pimd/pim_upstream.c
+++ b/pimd/pim_upstream.c
@@ -1288,7 +1288,11 @@ pim_upstream_inherited_olist_decide (struct pim_upstream *up)
if (pim_upstream_evaluate_join_desired_interface (up, ch))
{
- pim_channel_add_oif (up->channel_oil, ch->interface, PIM_OIF_FLAG_PROTO_PIM);
+ int flag = PIM_OIF_FLAG_PROTO_PIM;
+
+ if (ch->sg.src.s_addr == INADDR_ANY && ch->upstream != up)
+ flag = PIM_OIF_FLAG_PROTO_STAR;
+ pim_channel_add_oif (up->channel_oil, ch->interface, flag);
output_intf++;
}
}