-_public_ int sd_network_get_link_dhcp_lease(int ifindex, sd_dhcp_lease **ret) {
- _cleanup_free_ char *p = NULL, *s = NULL;
- sd_dhcp_lease *lease = NULL;
- int r;
-
- assert_return(ifindex > 0, -EINVAL);
- assert_return(ret, -EINVAL);
-
- if (asprintf(&p, "/run/systemd/netif/links/%d", ifindex) < 0)
- return -ENOMEM;
-
- r = parse_env_file(p, NEWLINE, "DHCP_LEASE", &s, NULL);
-
- if (r < 0)
- return r;
- else if (!s)
- return -EIO;
-
- r = dhcp_lease_load(s, &lease);
- if (r < 0)
- return r;
-
- *ret = lease;
-
- return 0;
-}
-