Merge pull request #30404 from yuwata/network-peer
network/route: fix reachability check when peer address is specified
This commit is contained in:
@@ -162,9 +162,9 @@ bool gateway_is_ready(Link *link, bool onlink, int family, const union in_addr_u
|
||||
continue;
|
||||
if (FLAGS_SET(a->flags, IFA_F_NOPREFIXROUTE))
|
||||
continue;
|
||||
if (in_addr_is_set(a->family, &a->in_addr_peer))
|
||||
continue;
|
||||
if (in_addr_prefix_covers(family, &a->in_addr, a->prefixlen, gw) > 0)
|
||||
if (in_addr_prefix_covers(a->family,
|
||||
in_addr_is_set(a->family, &a->in_addr_peer) ? &a->in_addr_peer : &a->in_addr,
|
||||
a->prefixlen, gw) > 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -108,3 +108,10 @@ MultiPathRoute=2001:1234:5:6fff:ff:ff:ff:ff@test1 20
|
||||
MultiPathRoute=2001:1234:5:7fff:ff:ff:ff:ff@test1 30
|
||||
MultiPathRoute=2001:1234:5:8fff:ff:ff:ff:ff@dummy98 10
|
||||
MultiPathRoute=2001:1234:5:9fff:ff:ff:ff:ff@dummy98 5
|
||||
|
||||
[Address]
|
||||
Address=1.1.8.105/31
|
||||
Peer=1.1.8.104/31
|
||||
|
||||
[Route]
|
||||
Gateway=1.1.8.104
|
||||
|
||||
@@ -3097,6 +3097,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
||||
self.assertIn('default via 149.10.125.65 proto static onlink', output)
|
||||
self.assertIn('default via 149.10.124.64 proto static', output)
|
||||
self.assertIn('default proto static', output)
|
||||
self.assertIn('default via 1.1.8.104 proto static', output)
|
||||
|
||||
print('### ip -4 route show table local dev dummy98')
|
||||
output = check_output('ip -4 route show table local dev dummy98')
|
||||
|
||||
Reference in New Issue
Block a user