diff options
Diffstat (limited to 'pimd/pim_upstream.c')
| -rw-r--r-- | pimd/pim_upstream.c | 6 |
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++; } } |
