X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-network%2Fsd-dhcp6-lease.c;h=e2715ea659d370168fbb92c1b0a5be32d280c8bc;hp=17a4b64063160fd1ee6ca754b3eddd9c1a773a62;hb=ee3a5027f7c56df2ef47a774970433d7045c9e9f;hpb=709d6710d047566c71f03e579a02c3d99fe15a3e diff --git a/src/libsystemd-network/sd-dhcp6-lease.c b/src/libsystemd-network/sd-dhcp6-lease.c index 17a4b6406..e2715ea65 100644 --- a/src/libsystemd-network/sd-dhcp6-lease.c +++ b/src/libsystemd-network/sd-dhcp6-lease.c @@ -41,7 +41,7 @@ int dhcp6_lease_ia_rebind_expire(const DHCP6IA *ia, uint32_t *expire) { assert_return(expire, -EINVAL); LIST_FOREACH(addresses, addr, ia->addresses) { - t = be32toh(addr->lifetime_valid); + t = be32toh(addr->iaaddr.lifetime_valid); if (valid < t) valid = t; } @@ -118,6 +118,23 @@ int dhcp6_lease_get_preference(sd_dhcp6_lease *lease, uint8_t *preference) { return 0; } +int dhcp6_lease_set_rapid_commit(sd_dhcp6_lease *lease) { + assert_return(lease, -EINVAL); + + lease->rapid_commit = true; + + return 0; +} + +int dhcp6_lease_get_rapid_commit(sd_dhcp6_lease *lease, bool *rapid_commit) { + assert_return(lease, -EINVAL); + assert_return(rapid_commit, -EINVAL); + + *rapid_commit = lease->rapid_commit; + + return 0; +} + int dhcp6_lease_get_iaid(sd_dhcp6_lease *lease, be32_t *iaid) { assert_return(lease, -EINVAL); assert_return(iaid, -EINVAL); @@ -139,9 +156,11 @@ int sd_dhcp6_lease_get_next_address(sd_dhcp6_lease *lease, if (!lease->addr_iter) return -ENOMSG; - memcpy(addr, &lease->addr_iter->address, sizeof(struct in6_addr)); - *lifetime_preferred = be32toh(lease->addr_iter->lifetime_preferred); - *lifetime_valid = be32toh(lease->addr_iter->lifetime_valid); + memcpy(addr, &lease->addr_iter->iaaddr.address, + sizeof(struct in6_addr)); + *lifetime_preferred = + be32toh(lease->addr_iter->iaaddr.lifetime_preferred); + *lifetime_valid = be32toh(lease->addr_iter->iaaddr.lifetime_valid); lease->addr_iter = lease->addr_iter->addresses_next;