Lines Matching refs:len

290 static int lease_parse_u32(const uint8_t *option, size_t len, uint32_t *ret, uint32_t min) {
294 if (len != 4)
304 static int lease_parse_u16(const uint8_t *option, size_t len, uint16_t *ret, uint16_t min) {
308 if (len != 2)
318 static int lease_parse_be32(const uint8_t *option, size_t len, be32_t *ret) {
322 if (len != 4)
329 static int lease_parse_string(const uint8_t *option, size_t len, char **ret) {
333 if (len <= 0)
342 if (memchr(option, 0, len - 1))
345 string = strndup((const char *) option, len);
356 static int lease_parse_domain(const uint8_t *option, size_t len, char **ret) {
363 r = lease_parse_string(option, len, &name);
388 static int lease_parse_in_addrs(const uint8_t *option, size_t len, struct in_addr **ret, size_t *n_ret) {
393 if (len <= 0) {
400 if (len % 4 != 0)
403 n_addresses = len / 4;
418 const uint8_t *option, size_t len,
423 assert(option || len <= 0);
428 if (len <= 0)
431 if (len % 8 != 0)
434 if (!GREEDY_REALLOC(*routes, *routes_allocated, *routes_size + (len / 8)))
437 while (len >= 8) {
454 len -= 8;
463 const uint8_t *option, size_t len,
466 assert(option || len <= 0);
471 if (len <= 0)
476 while (len > 0) {
488 len--;
491 if (dst_octets > 4 || len < dst_octets)
497 len -= dst_octets;
499 if (len < 4)
504 len -= 4;
512 int dhcp_lease_parse_options(uint8_t code, uint8_t len, const void *option, void *userdata) {
521 r = lease_parse_u32(option, len, &lease->lifetime, 1);
528 r = lease_parse_be32(option, len, &lease->server_address);
535 r = lease_parse_be32(option, len, &lease->subnet_mask);
543 r = lease_parse_be32(option, len, &lease->broadcast);
551 if (len >= 4) {
559 r = lease_parse_in_addrs(option, len, &lease->dns, &lease->dns_size);
565 r = lease_parse_in_addrs(option, len, &lease->ntp, &lease->ntp_size);
571 r = lease_parse_routes(option, len, &lease->static_route, &lease->static_route_size, &lease->static_route_allocated);
577 r = lease_parse_u16(option, len, &lease->mtu, 68);
583 r = lease_parse_domain(option, len, &lease->domainname);
592 r = lease_parse_domain(option, len, &lease->hostname);
601 r = lease_parse_string(option, len, &lease->root_path);
607 r = lease_parse_u32(option, len, &lease->t1, 1);
613 r = lease_parse_u32(option, len, &lease->t2, 1);
620 option, len,
631 r = lease_parse_string(option, len, &tz);
651 if (len <= 0)
656 p = memdup(option, len);
664 lease->vendor_specific_len = len;
668 r = dhcp_lease_insert_private_option(lease, code, option, len);
682 int dhcp_lease_insert_private_option(sd_dhcp_lease *lease, uint8_t tag, const void *data, uint8_t len) {
701 option->length = len;
702 option->data = memdup(data, len);
1066 size_t len;
1071 r = deserialize_dhcp_option(&data, &len, options[i]);
1077 r = dhcp_lease_insert_private_option(lease, SD_DHCP_OPTION_PRIVATE_BASE + i, data, len);