Skip to content

Commit 8e0baca

Browse files
committed
sd-network: introduce sd_network_link_get_stat()
1 parent f4af5f0 commit 8e0baca

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/libsystemd/sd-network/sd-network.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,23 @@ int sd_network_link_get_carrier_bound_by(int ifindex, int **ret) {
387387
return network_link_get_ifindexes(ifindex, "CARRIER_BOUND_BY", ret);
388388
}
389389

390+
int sd_network_link_get_stat(int ifindex, struct stat *ret) {
391+
char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex)];
392+
struct stat st;
393+
394+
assert_return(ifindex > 0, -EINVAL);
395+
396+
xsprintf(path, "/run/systemd/netif/links/%i", ifindex);
397+
398+
if (stat(path, &st) < 0)
399+
return -errno;
400+
401+
if (ret)
402+
*ret = st;
403+
404+
return 0;
405+
}
406+
390407
static int MONITOR_TO_FD(sd_network_monitor *m) {
391408
return (int) (unsigned long) m - 1;
392409
}

src/systemd/sd-network.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
***/
1919

2020
#include <inttypes.h>
21+
#include <sys/stat.h>
2122
#include <sys/types.h>
2223

2324
#include "_sd-common.h"
@@ -187,6 +188,8 @@ int sd_network_link_get_dhcp6_client_iaid_string(int ifindex, char **iaid);
187188
/* Get DHCPv6 client DUID for a given link. */
188189
int sd_network_link_get_dhcp6_client_duid_string(int ifindex, char **duid);
189190

191+
int sd_network_link_get_stat(int ifindex, struct stat *ret);
192+
190193
/* Monitor object */
191194
typedef struct sd_network_monitor sd_network_monitor;
192195

0 commit comments

Comments
 (0)