diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-05-18 03:01:58 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-06-08 06:33:27 +0900 |
commit | fb3aec45a0de7f71aa6418bd4f9d5f314efb4eb5 (patch) | |
tree | c3132d478fe8c80ffb8fd334c820d5274eae2b2f /src/network/networkd-manager.c | |
parent | ab486ef4ebc98f4902fdf1233675841b67ab572a (diff) | |
download | systemd-fb3aec45a0de7f71aa6418bd4f9d5f314efb4eb5.tar.gz |
network: make manager_find_uplink() uses stored route information
networkd already has all information about routes. It is not necessary
to re-read them by using local_gateways().
This also makes manager_find_uplink() take family.
Diffstat (limited to 'src/network/networkd-manager.c')
-rw-r--r-- | src/network/networkd-manager.c | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index d4b4043211..60e6d6f369 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -719,43 +719,6 @@ int manager_enumerate(Manager *m) { return 0; } -Link* manager_find_uplink(Manager *m, Link *exclude) { - _cleanup_free_ struct local_address *gateways = NULL; - int n; - - assert(m); - - /* Looks for a suitable "uplink", via black magic: an - * interface that is up and where the default route with the - * highest priority points to. */ - - n = local_gateways(m->rtnl, 0, AF_UNSPEC, &gateways); - if (n < 0) { - log_warning_errno(n, "Failed to determine list of default gateways: %m"); - return NULL; - } - - for (int i = 0; i < n; i++) { - Link *link; - - link = hashmap_get(m->links, INT_TO_PTR(gateways[i].ifindex)); - if (!link) { - log_debug("Weird, found a gateway for a link we don't know. Ignoring."); - continue; - } - - if (link == exclude) - continue; - - if (link->operstate < LINK_OPERSTATE_ROUTABLE) - continue; - - return link; - } - - return NULL; -} - static int set_hostname_handler(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { const sd_bus_error *e; int r; |