diff --git a/src/router_core/forwarder.c b/src/router_core/forwarder.c index 1637a423c..4019f29a9 100644 --- a/src/router_core/forwarder.c +++ b/src/router_core/forwarder.c @@ -631,7 +631,9 @@ int qdr_forward_multicast_CT(qdr_core_t *core, // get the inter-router connection associated with path to rnode: int conn_bit = (rnode->next_hop) ? rnode->next_hop->conn_mask_bit : rnode->conn_mask_bit; - if (conn_bit >= 0 && (!link_exclusion || qd_bitmask_value(link_exclusion, conn_bit) == 0)) { + + if (conn_bit >= 0 && (!link_exclusion || qd_bitmask_value(link_exclusion, conn_bit) == 0) && + (bypass_valid_origins || qd_bitmask_value(rnode->valid_origins, origin))) { qd_bitmask_set_bit(conn_set, conn_bit); } }