sd-network: add sd_network_link_get_required_operstate_for_online()

It reads $REQUIRED_OPER_STATE_FOR_ONLINE in serialized link data.
This commit is contained in:
Yu Watanabe 2019-03-06 14:45:17 +09:00
parent 4ac77d63e9
commit 22eab27caa
2 changed files with 22 additions and 0 deletions

View File

@ -164,6 +164,27 @@ _public_ int sd_network_link_get_required_for_online(int ifindex) {
return parse_boolean(s);
}
_public_ int sd_network_link_get_required_operstate_for_online(int ifindex, char **state) {
_cleanup_free_ char *s = NULL;
int r;
assert_return(state, -EINVAL);
r = network_link_get_string(ifindex, "REQUIRED_OPER_STATE_FOR_ONLINE", &s);
if (r < 0) {
if (r != -ENODATA)
return r;
/* For compatibility, assuming degraded. */
s = strdup("degraded");
if (!s)
return -ENOMEM;
}
*state = TAKE_PTR(s);
return 0;
}
_public_ int sd_network_link_get_llmnr(int ifindex, char **llmnr) {
return network_link_get_string(ifindex, "LLMNR", llmnr);
}

View File

@ -89,6 +89,7 @@ int sd_network_link_get_setup_state(int ifindex, char **state);
* -ENODATA: networkd is not aware of the link
*/
int sd_network_link_get_operational_state(int ifindex, char **state);
int sd_network_link_get_required_operstate_for_online(int ifindex, char **state);
/* Indicates whether the network is relevant to being online.
* Possible return codes: