Fix the pim_upstream_find code to match on INADDR_ANY for source.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
struct pim_upstream *up;
for (ALL_LIST_ELEMENTS_RO(qpim_upstream_list, up_node, up)) {
- if (
- (source_addr.s_addr == up->source_addr.s_addr) &&
- (group_addr.s_addr == up->group_addr.s_addr)
- ) {
- return up;
+ if (group_addr.s_addr == up->group_addr.s_addr) {
+ if ((up->source_addr.s_addr == INADDR_ANY) ||
+ (source_addr.s_addr == up->source_addr.s_addr)) {
+ return up;
+ }
}
}