networkd: display wireguard devtype
authorJason A. Donenfeld <Jason@zx2c4.com>
Mon, 29 Jan 2018 19:58:24 +0000 (20:58 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 29 Jan 2018 19:58:30 +0000 (20:58 +0100)
It's not useful to simply show "none", when we have more interesting
information to display.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
src/network/networkctl.c

index 59ce098..6ce00df 100644 (file)
@@ -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;
+
+                (void) sd_device_get_devtype(d, &devtype);
+
                 /* 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";
+                }
 
-                (void) sd_device_get_devtype(d, &devtype);
-
-                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);