X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fsd-network.c;h=492e97c73f286b4979bc6be5f5d854744d85cc31;hb=4d473d5dded03d3b682dc389d610bb6b2db6e5f7;hp=c86781220957347fa4b0440737a4cd8fcbf0d02c;hpb=deb2e5230b4dcbc0e2e02cc47a0b2d0d7179a044;p=elogind.git diff --git a/src/network/sd-network.c b/src/network/sd-network.c index c86781220..492e97c73 100644 --- a/src/network/sd-network.c +++ b/src/network/sd-network.c @@ -95,6 +95,27 @@ _public_ int sd_network_get_link_state(unsigned index, char **state) { return 0; } +_public_ int sd_network_get_operational_state(char **state) { + _cleanup_free_ char *s = NULL; + int r; + + assert_return(state, -EINVAL); + + r = parse_env_file("/run/systemd/network/state", NEWLINE, "OPER_STATE", + &s, NULL); + if (r == -ENOENT) + return -ENODATA; + else if (r < 0) + return r; + else if (!s) + return -EIO; + + *state = s; + s = NULL; + + return 0; +} + _public_ int sd_network_get_link_operational_state(unsigned index, char **state) { _cleanup_free_ char *s = NULL, *p = NULL; int r;