chiark / gitweb /
sd-dhcp6-lease: Name the structure containing IAADDR data
[elogind.git] / src / libsystemd-network / sd-dhcp6-lease.c
index 17a4b64063160fd1ee6ca754b3eddd9c1a773a62..e2715ea659d370168fbb92c1b0a5be32d280c8bc 100644 (file)
@@ -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;