-static int network_get_in_addr(const char *key, unsigned index, struct in_addr **addr, size_t *addr_size) {
- _cleanup_free_ char *p = NULL, *s = NULL;
- int r;
-
- assert_return(index, -EINVAL);
- assert_return(addr, -EINVAL);
- assert_return(addr_size, -EINVAL);
-
- if (asprintf(&p, "/run/systemd/network/links/%u", index) < 0)
- return -ENOMEM;
-
- r = parse_env_file(p, NEWLINE, key, &s, NULL);
- if (r < 0)
- return r;
- else if (!s)
- return -EIO;
-
- return deserialize_in_addrs(addr, addr_size, s);
-}
-
-_public_ int sd_network_get_dns(unsigned index, struct in_addr **addr, size_t *addr_size) {
- return network_get_in_addr("DNS", index, addr, addr_size);
-}
-
-_public_ int sd_network_get_ntp(unsigned index, struct in_addr **addr, size_t *addr_size) {
- return network_get_in_addr("NTP", index, addr, addr_size);
-}
-
-static int network_get_in6_addr(const char *key, unsigned index, struct in6_addr **addr, size_t *addr_size) {