DHCP6Address *addr;
uint32_t valid = 0, t;
- assert_return(ia, -EINVAL);
- assert_return(expire, -EINVAL);
+ assert(ia);
+ assert(expire);
LIST_FOREACH(addresses, addr, ia->addresses) {
t = be32toh(addr->iaaddr.lifetime_valid);
int dhcp6_lease_set_clientid(sd_dhcp6_lease *lease, const uint8_t *id, size_t len) {
uint8_t *clientid;
- assert_return(lease, -EINVAL);
- assert_return(id, -EINVAL);
- assert_return(len > 0, -EINVAL);
+ assert(lease);
+ assert(id);
+ assert(len > 0);
clientid = memdup(id, len);
if (!clientid)
}
int dhcp6_lease_get_clientid(sd_dhcp6_lease *lease, uint8_t **ret_id, size_t *ret_len) {
- assert_return(lease, -EINVAL);
+ assert(lease);
if (!lease->clientid)
return -ENODATA;
int dhcp6_lease_set_serverid(sd_dhcp6_lease *lease, const uint8_t *id, size_t len) {
uint8_t *serverid;
- assert_return(lease, -EINVAL);
- assert_return(id, -EINVAL);
- assert_return(len > 0, -EINVAL);
+ assert(lease);
+ assert(id);
+ assert(len > 0);
serverid = memdup(id, len);
if (!serverid)
}
int dhcp6_lease_get_serverid(sd_dhcp6_lease *lease, uint8_t **ret_id, size_t *ret_len) {
- assert_return(lease, -EINVAL);
+ assert(lease);
if (!lease->serverid)
return -ENODATA;
*ret_id = lease->serverid;
if (ret_len)
*ret_len = lease->serverid_len;
-
return 0;
}
int dhcp6_lease_set_preference(sd_dhcp6_lease *lease, uint8_t preference) {
- assert_return(lease, -EINVAL);
+ assert(lease);
lease->preference = preference;
-
return 0;
}
-int dhcp6_lease_get_preference(sd_dhcp6_lease *lease, uint8_t *preference) {
- assert_return(preference, -EINVAL);
-
- if (!lease)
- return -EINVAL;
-
- *preference = lease->preference;
+int dhcp6_lease_get_preference(sd_dhcp6_lease *lease, uint8_t *ret) {
+ assert(lease);
+ assert(ret);
+ *ret = lease->preference;
return 0;
}
int dhcp6_lease_set_rapid_commit(sd_dhcp6_lease *lease) {
- assert_return(lease, -EINVAL);
+ assert(lease);
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;
+int dhcp6_lease_get_rapid_commit(sd_dhcp6_lease *lease, bool *ret) {
+ assert(lease);
+ assert(ret);
+ *ret = lease->rapid_commit;
return 0;
}
-int sd_dhcp6_lease_get_address(sd_dhcp6_lease *lease, struct in6_addr *addr,
- uint32_t *lifetime_preferred,
- uint32_t *lifetime_valid) {
+int sd_dhcp6_lease_get_address(
+ sd_dhcp6_lease *lease,
+ struct in6_addr *ret_addr,
+ uint32_t *ret_lifetime_preferred,
+ uint32_t *ret_lifetime_valid) {
+
assert_return(lease, -EINVAL);
- assert_return(addr, -EINVAL);
- assert_return(lifetime_preferred, -EINVAL);
- assert_return(lifetime_valid, -EINVAL);
if (!lease->addr_iter)
return -ENOMSG;
- 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);
+ if (ret_addr)
+ *ret_addr = lease->addr_iter->iaaddr.address;
+ if (ret_lifetime_preferred)
+ *ret_lifetime_preferred = be32toh(lease->addr_iter->iaaddr.lifetime_preferred);
+ if (ret_lifetime_valid)
+ *ret_lifetime_valid = be32toh(lease->addr_iter->iaaddr.lifetime_valid);
lease->addr_iter = lease->addr_iter->addresses_next;
-
return 0;
}
lease->addr_iter = lease->ia_na.addresses;
}
-int sd_dhcp6_lease_get_pd(sd_dhcp6_lease *lease, struct in6_addr *prefix,
- uint8_t *prefix_len,
- uint32_t *lifetime_preferred,
- uint32_t *lifetime_valid) {
+int sd_dhcp6_lease_get_pd(
+ sd_dhcp6_lease *lease,
+ struct in6_addr *ret_prefix,
+ uint8_t *ret_prefix_len,
+ uint32_t *ret_lifetime_preferred,
+ uint32_t *ret_lifetime_valid) {
+
assert_return(lease, -EINVAL);
- assert_return(prefix, -EINVAL);
- assert_return(prefix_len, -EINVAL);
- assert_return(lifetime_preferred, -EINVAL);
- assert_return(lifetime_valid, -EINVAL);
if (!lease->prefix_iter)
return -ENOMSG;
- memcpy(prefix, &lease->prefix_iter->iapdprefix.address,
- sizeof(struct in6_addr));
- *prefix_len = lease->prefix_iter->iapdprefix.prefixlen;
- *lifetime_preferred =
- be32toh(lease->prefix_iter->iapdprefix.lifetime_preferred);
- *lifetime_valid =
- be32toh(lease->prefix_iter->iapdprefix.lifetime_valid);
+ if (ret_prefix)
+ *ret_prefix = lease->prefix_iter->iapdprefix.address;
+ if (ret_prefix_len)
+ *ret_prefix_len = lease->prefix_iter->iapdprefix.prefixlen;
+ if (ret_lifetime_preferred)
+ *ret_lifetime_preferred = be32toh(lease->prefix_iter->iapdprefix.lifetime_preferred);
+ if (ret_lifetime_valid)
+ *ret_lifetime_valid = be32toh(lease->prefix_iter->iapdprefix.lifetime_valid);
lease->prefix_iter = lease->prefix_iter->addresses_next;
-
return 0;
}
}
int dhcp6_lease_add_dns(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
- assert_return(lease, -EINVAL);
- assert_return(optval, -EINVAL);
+ assert(lease);
+ assert(optval || optlen == 0);
if (optlen == 0)
return 0;
_cleanup_strv_free_ char **domains = NULL;
int r;
- assert_return(lease, -EINVAL);
- assert_return(optval, -EINVAL);
+ assert(lease);
+ assert(optval || optlen == 0);
if (optlen == 0)
return 0;
int dhcp6_lease_add_ntp(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
int r;
- assert_return(lease, -EINVAL);
- assert_return(optval, -EINVAL);
+ assert(lease);
+ assert(optval || optlen == 0);
for (size_t offset = 0; offset < optlen;) {
const uint8_t *subval;
}
int dhcp6_lease_add_sntp(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
- assert_return(lease, -EINVAL);
- assert_return(optval, -EINVAL);
+ assert(lease);
+ assert(optval || optlen == 0);
if (optlen == 0)
return 0;
}
int dhcp6_lease_set_fqdn(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
- int r;
char *fqdn;
+ int r;
- assert_return(lease, -EINVAL);
- assert_return(optval, -EINVAL);
+ assert(lease);
+ assert(optval || optlen == 0);
+
+ if (optlen == 0)
+ return 0;
if (optlen < 2)
return -ENODATA;
int dhcp6_lease_new(sd_dhcp6_lease **ret) {
sd_dhcp6_lease *lease;
+ assert(ret);
+
lease = new0(sd_dhcp6_lease, 1);
if (!lease)
return -ENOMEM;