diff options
| author | Donatas Abraitis <donatas.abraitis@gmail.com> | 2021-07-26 12:20:54 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-26 12:20:54 +0300 |
| commit | 66aa87d03e547272c219f1323e880ede401f47d3 (patch) | |
| tree | c561686ed71e1e42e50684beb12958d7ca9668ad /pimd/pim_iface.c | |
| parent | c48ebbdb2021fb01a1a8a7ad8ef9ef99e418c6a3 (diff) | |
| parent | a2810d30256e8de250b9e0fdc274fc4852c7877c (diff) | |
Merge pull request #8637 from opensourcerouting/pim-vrf-acl-fixes
Pim vrf acl fixes
Diffstat (limited to 'pimd/pim_iface.c')
| -rw-r--r-- | pimd/pim_iface.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index 48b019c8c8..0b28a3e84c 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -1512,10 +1512,15 @@ struct prefix *pim_if_connected_to_source(struct interface *ifp, struct in_addr p.prefixlen = IPV4_MAX_BITLEN; for (ALL_LIST_ELEMENTS_RO(ifp->connected, cnode, c)) { - if ((c->address->family == AF_INET) - && prefix_match(CONNECTED_PREFIX(c), &p)) { - return CONNECTED_PREFIX(c); - } + if (c->address->family != AF_INET) + continue; + if (prefix_match(c->address, &p)) + return c->address; + if (CONNECTED_PEER(c) && prefix_match(c->destination, &p)) + /* this is not a typo, on PtP we need to return the + * *local* address that lines up with src. + */ + return c->address; } return NULL; |
