From: Tom Gundersen Date: Fri, 18 Jul 2014 23:37:22 +0000 (+0200) Subject: sd-network: drop get_ifindices X-Git-Tag: v216~470 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=653912918f594ebbca46806b302ef6b477402575 sd-network: drop get_ifindices People should use rtnl for this, and then only query sd-network by the ifindices it finds. --- diff --git a/TODO b/TODO index bfa06def4..4a1313d41 100644 --- a/TODO +++ b/TODO @@ -29,7 +29,6 @@ Features: releases (probably not even a directory in /run for it) - the order between ipv6 and ipv4 dns servers probably matters, hence the current DNS apis won't suffice - - sd_network_get_ifindices() sounds redundant, rtnetlink can do that too * resolved: - IDN (?) diff --git a/src/network/sd-network.c b/src/network/sd-network.c index 0844e5868..91d627505 100644 --- a/src/network/sd-network.c +++ b/src/network/sd-network.c @@ -206,64 +206,6 @@ _public_ int sd_network_dhcp_use_ntp(int ifindex) { return network_get_boolean("DHCP_USE_NTP", ifindex); } -_public_ int sd_network_get_ifindices(int **ifindices) { - _cleanup_closedir_ DIR *d; - int r = 0; - unsigned n = 0; - _cleanup_free_ int *l = NULL; - - d = opendir("/run/systemd/netif/links/"); - if (!d) - return -errno; - - for (;;) { - struct dirent *de; - int k; - int ifindex; - - errno = 0; - de = readdir(d); - if (!de && errno != 0) - return -errno; - - if (!de) - break; - - dirent_ensure_type(d, de); - - if (!dirent_is_file(de)) - continue; - - k = safe_atoi(de->d_name, &ifindex); - if (k < 0) - continue; - - if (ifindices) { - if ((unsigned) r >= n) { - int *t; - - n = MAX(16, 2*r); - t = realloc(l, sizeof(int) * n); - if (!t) - return -ENOMEM; - - l = t; - } - - assert((unsigned) r < n); - l[r++] = ifindex; - } else - r++; - } - - if (ifindices) { - *ifindices = l; - l = NULL; - } - - return r; -} - static inline int MONITOR_TO_FD(sd_network_monitor *m) { return (int) (unsigned long) m - 1; } diff --git a/src/systemd/sd-network.h b/src/systemd/sd-network.h index 0f32c448f..e4547057f 100644 --- a/src/systemd/sd-network.h +++ b/src/systemd/sd-network.h @@ -88,10 +88,6 @@ int sd_network_get_dns(int ifindex, struct in_addr **addr); /* Get IPv6 DNS entries statically configured for the link */ int sd_network_get_dns6(int ifindex, struct in6_addr **addr); -/* Get all network interfaces' indices, and store them in *indices. Returns - * the number of indices. If indices is NULL, only returns the number of indices. */ -int sd_network_get_ifindices(int **ifindices); - /* Monitor object */ typedef struct sd_network_monitor sd_network_monitor;