summaryrefslogtreecommitdiff
path: root/src/systemd
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-05-07 16:35:05 +0200
committerTom Gundersen <teg@jklm.no>2014-05-07 16:54:02 +0200
commitdeb2e5230b4dcbc0e2e02cc47a0b2d0d7179a044 (patch)
treeec088f69f3d58588bc22b3d3bf4c207b46f807f7 /src/systemd
parent089377209f47e62f29b80b018ad9bbf17f6d5fbd (diff)
downloadsystemd-deb2e5230b4dcbc0e2e02cc47a0b2d0d7179a044.tar.gz
sd-network: expose both admin and operational state directly
Also add a call to check if a link is loopback, as this should commonly be ignored.
Diffstat (limited to 'src/systemd')
-rw-r--r--src/systemd/sd-network.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/systemd/sd-network.h b/src/systemd/sd-network.h
index 9562b78feb..40bd75a23a 100644
--- a/src/systemd/sd-network.h
+++ b/src/systemd/sd-network.h
@@ -51,8 +51,24 @@
_SD_BEGIN_DECLARATIONS;
-/* Get state from ifindex. Possible states: unknown, unmanaged, failed, configuring, configured */
-int sd_network_get_link_state(unsigned index, char**state);
+/* Get state from ifindex.
+ * Possible states: failed, configuring, configured
+ * Possible return codes:
+ * -ENODATA: networkd is not aware of the link
+ * -EUNATCH: networkd is not managing this link
+ * -EBUSY: udev is still processing the link, networkd does not yet know if it will manage it
+ */
+int sd_network_get_link_state(unsigned index, char **state);
+
+/* Get operatinal state from ifindex.
+ * Possible states: unknown, dormant, carrier
+ * Possible return codes:
+ * -ENODATA: networkd is not aware of the link
+ */
+int sd_network_get_link_operational_state(unsigned index, char **state);
+
+/* Returns true if link exists and is loopback, and false otherwise */
+int sd_network_link_is_loopback(unsigned index);
/* Get DHCPv4 lease from ifindex. */
int sd_network_get_dhcp_lease(unsigned index, sd_dhcp_lease **ret);
@@ -65,7 +81,7 @@ int sd_network_get_ifindices(unsigned **indices);
typedef struct sd_network_monitor sd_network_monitor;
/* Create a new monitor. Category must be NULL, "links" or "leases". */
-int sd_network_monitor_new(const char *category, sd_network_monitor** ret);
+int sd_network_monitor_new(const char *category, sd_network_monitor **ret);
/* Destroys the passed monitor. Returns NULL. */
sd_network_monitor* sd_network_monitor_unref(sd_network_monitor *m);