diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 59ce098cd1..6ce00dff6d 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -62,18 +62,26 @@ static int link_get_type_string(unsigned short iftype, sd_device *d, char **ret) assert(ret); - if (iftype == ARPHRD_ETHER && d) { + if (d) { const char *devtype = NULL, *id = NULL; - /* WLANs have iftype ARPHRD_ETHER, but we want - * to show a more useful type string for - * them */ (void) sd_device_get_devtype(d, &devtype); - if (streq_ptr(devtype, "wlan")) - id = "wlan"; - else if (streq_ptr(devtype, "wwan")) - id = "wwan"; + /* WLANs have iftype ARPHRD_ETHER, but we want + * to show a more useful type string for + * them */ + if (iftype == ARPHRD_ETHER) { + if (streq_ptr(devtype, "wlan")) + id = "wlan"; + else if (streq_ptr(devtype, "wwan")) + id = "wwan"; + } + + /* Likewise, WireGuard has iftype ARPHRD_NONE, + * since it's layer 3, but we of course want + * something more useful than that. */ + if (iftype == ARPHRD_NONE && streq_ptr(devtype, "wireguard")) + id = "wireguard"; if (id) { p = strdup(id);