From: Mike Yuan Date: Sat, 7 Sep 2024 17:59:36 +0000 (+0200) Subject: sd-network: introduce sd_network_link_get_netdev_file{,_dropins} X-Git-Tag: v257-rc1~502^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4591c89a153c1f6889887dfdc5effbcf1f385b6b;p=thirdparty%2Fsystemd.git sd-network: introduce sd_network_link_get_netdev_file{,_dropins} --- diff --git a/src/libsystemd/sd-network/sd-network.c b/src/libsystemd/sd-network/sd-network.c index 9d11dce2e8f..a7d860c8bab 100644 --- a/src/libsystemd/sd-network/sd-network.c +++ b/src/libsystemd/sd-network/sd-network.c @@ -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); } diff --git a/src/systemd/sd-network.h b/src/systemd/sd-network.h index d292719a3e5..d310d238d07 100644 --- a/src/systemd/sd-network.h +++ b/src/systemd/sd-network.h @@ -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);