sd-network: introduce sd_network_link_get_netdev_file{,_dropins}

This commit is contained in:
Mike Yuan
2024-09-07 19:59:36 +02:00
parent 2cf9b1a0ee
commit 4591c89a15
2 changed files with 23 additions and 5 deletions

View File

@@ -159,25 +159,37 @@ int sd_network_link_get_network_file(int ifindex, char **ret) {
return network_link_get_string(ifindex, "NETWORK_FILE", ret);
}
int sd_network_link_get_network_file_dropins(int ifindex, char ***ret) {
_cleanup_free_ char **sv = NULL, *joined = NULL;
int sd_network_link_get_netdev_file(int ifindex, char **ret) {
return network_link_get_string(ifindex, "NETDEV_FILE", ret);
}
static int link_get_config_file_dropins_internal(int ifindex, const char *field, char ***ret) {
_cleanup_free_ char *s = NULL;
int r;
assert(field);
assert_return(ifindex > 0, -EINVAL);
assert_return(ret, -EINVAL);
r = network_link_get_string(ifindex, "NETWORK_FILE_DROPINS", &joined);
r = network_link_get_string(ifindex, field, &s);
if (r < 0)
return r;
r = strv_split_full(&sv, joined, ":", EXTRACT_CUNESCAPE);
r = strv_split_full(ret, s, ":", EXTRACT_CUNESCAPE);
if (r < 0)
return r;
*ret = TAKE_PTR(sv);
return 0;
}
int sd_network_link_get_network_file_dropins(int ifindex, char ***ret) {
return link_get_config_file_dropins_internal(ifindex, "NETWORK_FILE_DROPINS", ret);
}
int sd_network_link_get_netdev_file_dropins(int ifindex, char ***ret) {
return link_get_config_file_dropins_internal(ifindex, "NETDEV_FILE_DROPINS", ret);
}
int sd_network_link_get_operational_state(int ifindex, char **ret) {
return network_link_get_string(ifindex, "OPER_STATE", ret);
}

View File

@@ -122,6 +122,12 @@ int sd_network_link_get_network_file(int ifindex, char **ret);
/* Get paths to .network file dropins applied to link */
int sd_network_link_get_network_file_dropins(int ifindex, char ***ret);
/* Get path to .netdev file associated with link */
int sd_network_link_get_netdev_file(int ifindex, char **ret);
/* Get path to .netdev file dropins associated with link */
int sd_network_link_get_netdev_file_dropins(int ifindex, char ***ret);
/* Get DNS entries for a given link. These are string representations of
* IP addresses */
int sd_network_link_get_dns(int ifindex, char ***ret);