summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-network/network-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsystemd/sd-network/network-util.c')
-rw-r--r--src/libsystemd/sd-network/network-util.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libsystemd/sd-network/network-util.c b/src/libsystemd/sd-network/network-util.c
index 0addabe10a..f3d6061578 100644
--- a/src/libsystemd/sd-network/network-util.c
+++ b/src/libsystemd/sd-network/network-util.c
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#include "alloc-util.h"
+#include "arphrd-list.h"
#include "fd-util.h"
#include "network-util.h"
#include "string-table.h"
@@ -103,3 +104,23 @@ int parse_operational_state_range(const char *str, LinkOperationalStateRange *ou
return 0;
}
+
+char *link_get_type_string(sd_device *device, unsigned short iftype) {
+ const char *t;
+ char *p;
+
+ if (device &&
+ sd_device_get_devtype(device, &t) >= 0 &&
+ !isempty(t))
+ return strdup(t);
+
+ t = arphrd_to_name(iftype);
+ if (!t)
+ return NULL;
+
+ p = strdup(t);
+ if (!p)
+ return NULL;
+
+ return ascii_strlower(p);
+}