]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network-util: introduce network_link_get_operational_state()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 20 Jan 2022 20:45:09 +0000 (05:45 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 20 Jan 2022 21:22:21 +0000 (06:22 +0900)
src/libsystemd/sd-network/network-util.c
src/libsystemd/sd-network/network-util.h

index 971247714ac5bc6192b155fd0d2d3e32c06afdf7..2059567ef894f031c33437ef3f4cd685ed31a37a 100644 (file)
@@ -135,3 +135,23 @@ int parse_operational_state_range(const char *str, LinkOperationalStateRange *ou
 
         return 0;
 }
+
+int network_link_get_operational_state(int ifindex, LinkOperationalState *ret) {
+        _cleanup_free_ char *str = NULL;
+        LinkOperationalState s;
+        int r;
+
+        assert(ifindex > 0);
+        assert(ret);
+
+        r = sd_network_link_get_operational_state(ifindex, &str);
+        if (r < 0)
+                return r;
+
+        s = link_operstate_from_string(str);
+        if (s < 0)
+                return s;
+
+        *ret = s;
+        return 0;
+}
index 6e2ad28426302de4cad6f4afcccce1122df41a1a..c47e271a768fd29ab04438b0dc98fc173f150cb1 100644 (file)
@@ -83,3 +83,4 @@ typedef struct LinkOperationalStateRange {
                                                                    LINK_OPERSTATE_ROUTABLE }
 
 int parse_operational_state_range(const char *str, LinkOperationalStateRange *out);
+int network_link_get_operational_state(int ifindex, LinkOperationalState *ret);