diff options
author | Lennart Poettering <lennart@poettering.net> | 2016-02-20 22:12:14 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2016-02-21 20:40:57 +0100 |
commit | 33d5013db09729d3453d60a1a194016e27ef4fab (patch) | |
tree | 709eccdabc2035881a7ec9dfcddd7e1ddba42fe5 | |
parent | 5f02f341c08c2a1cd05cc5066ca94bc6aa43243c (diff) |
networkctl: if there's no data from networkd about an iface show as "unmanaged"
After all, if we know that an interface exists but networkd did not store any
info about it, then it's definitely unmanaged by it.
(Note that we add this fix-up to networkctl, and not to sd-network, simply
because a missing file might also be result of the interface not existing.)
-rw-r--r-- | src/network/networkctl.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 21ad776d0d..b7b3b51325 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -321,7 +321,9 @@ static int list_links(int argc, char *argv[], void *userdata) { (void) sd_network_link_get_operational_state(links[i].ifindex, &operational_state); operational_state_to_color(operational_state, &on_color_operational, &off_color_operational); - (void) sd_network_link_get_setup_state(links[i].ifindex, &setup_state); + r = sd_network_link_get_setup_state(links[i].ifindex, &setup_state); + if (r == -ENODATA) /* If there's no info available about this iface, it's unmanaged by networkd */ + setup_state = strdup("unmanaged"); setup_state_to_color(setup_state, &on_color_setup, &off_color_setup); xsprintf(devid, "n%i", links[i].ifindex); @@ -722,7 +724,9 @@ static int link_status_one( (void) sd_network_link_get_operational_state(info->ifindex, &operational_state); operational_state_to_color(operational_state, &on_color_operational, &off_color_operational); - (void) sd_network_link_get_setup_state(info->ifindex, &setup_state); + r = sd_network_link_get_setup_state(info->ifindex, &setup_state); + if (r == -ENODATA) /* If there's no info available about this iface, it's unmanaged by networkd */ + setup_state = strdup("unmanaged"); setup_state_to_color(setup_state, &on_color_setup, &off_color_setup); (void) sd_network_link_get_dns(info->ifindex, &dns); |