Lines Matching refs:lease
772 struct client_lease *lease; in dhcpack() local
790 lease = packet_to_lease(packet); in dhcpack()
791 if (!lease) { in dhcpack()
796 ip->client->new = lease; in dhcpack()
1030 struct client_lease *lease, *lp; in dhcpoffer() local
1062 for (lease = ip->client->offered_leases; in dhcpoffer()
1063 lease; lease = lease->next) { in dhcpoffer()
1064 if (lease->address.len == sizeof(packet->raw->yiaddr) && in dhcpoffer()
1065 !memcmp(lease->address.iabuf, in dhcpoffer()
1066 &packet->raw->yiaddr, lease->address.len)) { in dhcpoffer()
1072 lease = packet_to_lease(packet); in dhcpoffer()
1073 if (!lease) { in dhcpoffer()
1081 lease->is_bootp = 1; in dhcpoffer()
1084 lease->medium = ip->client->medium; in dhcpoffer()
1087 script_init("ARPSEND", lease->medium); in dhcpoffer()
1088 script_write_params("check_", lease); in dhcpoffer()
1103 if (lease->address.len == ip->client->requested_address.len && in dhcpoffer()
1104 !memcmp(lease->address.iabuf, in dhcpoffer()
1107 lease->next = ip->client->offered_leases; in dhcpoffer()
1108 ip->client->offered_leases = lease; in dhcpoffer()
1123 lease->next = NULL; in dhcpoffer()
1125 ip->client->offered_leases = lease; in dhcpoffer()
1130 lp->next = lease; in dhcpoffer()
1158 struct client_lease *lease; in packet_to_lease() local
1161 lease = malloc(sizeof(struct client_lease)); in packet_to_lease()
1163 if (!lease) { in packet_to_lease()
1168 memset(lease, 0, sizeof(*lease)); in packet_to_lease()
1182 lease->options[i].data = in packet_to_lease()
1184 if (!lease->options[i].data) { in packet_to_lease()
1186 free_client_lease(lease); in packet_to_lease()
1189 memcpy(lease->options[i].data, in packet_to_lease()
1192 lease->options[i].len = in packet_to_lease()
1194 lease->options[i].data[lease->options[i].len] = in packet_to_lease()
1197 if (!check_option(lease,i)) { in packet_to_lease()
1200 free_client_lease(lease); in packet_to_lease()
1206 lease->address.len = sizeof(packet->raw->yiaddr); in packet_to_lease()
1207 memcpy(lease->address.iabuf, &packet->raw->yiaddr, lease->address.len); in packet_to_lease()
1209 lease->nextserver.len = sizeof(packet->raw->siaddr); in packet_to_lease()
1210 memcpy(lease->nextserver.iabuf, &packet->raw->siaddr, lease->nextserver.len); in packet_to_lease()
1221 lease->server_name = malloc(DHCP_SNAME_LEN + 1); in packet_to_lease()
1222 if (!lease->server_name) { in packet_to_lease()
1224 free_client_lease(lease); in packet_to_lease()
1227 memcpy(lease->server_name, packet->raw->sname, DHCP_SNAME_LEN); in packet_to_lease()
1228 lease->server_name[DHCP_SNAME_LEN]='\0'; in packet_to_lease()
1236 lease->filename = malloc(DHCP_FILE_LEN + 1); in packet_to_lease()
1237 if (!lease->filename) { in packet_to_lease()
1239 free_client_lease(lease); in packet_to_lease()
1242 memcpy(lease->filename, packet->raw->file, DHCP_FILE_LEN); in packet_to_lease()
1243 lease->filename[DHCP_FILE_LEN]='\0'; in packet_to_lease()
1245 return lease; in packet_to_lease()
1622 make_discover(struct interface_info *ip, struct client_lease *lease) in make_discover() argument
1651 if (lease) { in make_discover()
1652 ip->client->requested_address = lease->address; in make_discover()
1655 options[i]->value = lease->address.iabuf; in make_discover()
1656 options[i]->len = lease->address.len; in make_discover()
1657 options[i]->buf_size = lease->address.len; in make_discover()
1735 make_request(struct interface_info *ip, struct client_lease * lease) in make_request() argument
1768 options[i]->value = lease->options[i].data; in make_request()
1769 options[i]->len = lease->options[i].len; in make_request()
1770 options[i]->buf_size = lease->options[i].len; in make_request()
1775 ip->client->requested_address = lease->address; in make_request()
1778 options[i]->value = lease->address.iabuf; in make_request()
1779 options[i]->len = lease->address.len; in make_request()
1780 options[i]->buf_size = lease->address.len; in make_request()
1849 lease->address.iabuf, lease->address.len); in make_request()
1868 make_decline(struct interface_info *ip, struct client_lease *lease) in make_decline() argument
1890 options[i]->value = lease->options[i].data; in make_decline()
1891 options[i]->len = lease->options[i].len; in make_decline()
1892 options[i]->buf_size = lease->options[i].len; in make_decline()
1898 options[i]->value = lease->address.iabuf; in make_decline()
1899 options[i]->len = lease->address.len; in make_decline()
1900 options[i]->buf_size = lease->address.len; in make_decline()
1942 free_client_lease(struct client_lease *lease) in free_client_lease() argument
1946 if (lease->server_name) in free_client_lease()
1947 free(lease->server_name); in free_client_lease()
1948 if (lease->filename) in free_client_lease()
1949 free(lease->filename); in free_client_lease()
1951 if (lease->options[i].len) in free_client_lease()
1952 free(lease->options[i].data); in free_client_lease()
1954 free(lease); in free_client_lease()
1993 write_client_lease(struct interface_info *ip, struct client_lease *lease, in write_client_lease() argument
2009 if (lease->is_static) in write_client_lease()
2019 if (lease->is_bootp) in write_client_lease()
2022 fprintf(leaseFile, " fixed-address %s;\n", piaddr(lease->address)); in write_client_lease()
2023 if (lease->nextserver.len == sizeof(inaddr_any) && in write_client_lease()
2024 0 != memcmp(lease->nextserver.iabuf, &inaddr_any, in write_client_lease()
2027 piaddr(lease->nextserver)); in write_client_lease()
2028 if (lease->filename) in write_client_lease()
2029 fprintf(leaseFile, " filename \"%s\";\n", lease->filename); in write_client_lease()
2030 if (lease->server_name) in write_client_lease()
2032 lease->server_name); in write_client_lease()
2033 if (lease->medium) in write_client_lease()
2034 fprintf(leaseFile, " medium \"%s\";\n", lease->medium->string); in write_client_lease()
2036 if (lease->options[i].len) in write_client_lease()
2039 pretty_print_option(i, lease->options[i].data, in write_client_lease()
2040 lease->options[i].len, 1, 1)); in write_client_lease()
2042 t = gmtime(&lease->renewal); in write_client_lease()
2046 t = gmtime(&lease->rebind); in write_client_lease()
2050 t = gmtime(&lease->expiry); in write_client_lease()
2122 priv_script_write_params(const char *prefix, struct client_lease *lease) in priv_script_write_params() argument
2131 piaddr(lease->address)); in priv_script_write_params()
2138 dp = lease->options[DHO_SUBNET_MASK].data; in priv_script_write_params()
2139 len = lease->options[DHO_SUBNET_MASK].len; in priv_script_write_params()
2141 if (len && (len < sizeof(lease->address.iabuf))) { in priv_script_write_params()
2146 subnet = subnet_number(lease->address, netmask); in priv_script_write_params()
2150 if (!lease->options[DHO_BROADCAST_ADDRESS].len) { in priv_script_write_params()
2160 if (lease->filename) in priv_script_write_params()
2161 script_set_env(ip->client, prefix, "filename", lease->filename); in priv_script_write_params()
2162 if (lease->server_name) in priv_script_write_params()
2164 lease->server_name); in priv_script_write_params()
2169 if (lease->options[i].len) { in priv_script_write_params()
2173 dp = lease->options[i].data; in priv_script_write_params()
2174 len = lease->options[i].len; in priv_script_write_params()
2186 lease->options[i].len; in priv_script_write_params()
2201 lease->options[i].data, in priv_script_write_params()
2202 lease->options[i].len); in priv_script_write_params()
2214 lease->options[i].len; in priv_script_write_params()
2222 lease->options[i].data, in priv_script_write_params()
2223 lease->options[i].len); in priv_script_write_params()
2224 for (dp = dbuf + lease->options[i].len; in priv_script_write_params()
2242 } else if (lease->options[i].len) { in priv_script_write_params()
2243 len = lease->options[i].len; in priv_script_write_params()
2244 dp = lease->options[i].data; in priv_script_write_params()
2257 snprintf(tbuf, sizeof(tbuf), "%d", (int)lease->expiry); in priv_script_write_params()
2262 script_write_params(const char *prefix, struct client_lease *lease) in script_write_params() argument
2269 if (lease->filename != NULL) in script_write_params()
2270 fn_len = strlen(lease->filename); in script_write_params()
2271 if (lease->server_name != NULL) in script_write_params()
2272 sn_len = strlen(lease->server_name); in script_write_params()
2277 hdr.len = sizeof(hdr) + sizeof(*lease) + in script_write_params()
2282 hdr.len += sizeof(lease->options[i].len); in script_write_params()
2283 hdr.len += lease->options[i].len; in script_write_params()
2293 errs += buf_add(buf, lease, sizeof(*lease)); in script_write_params()
2295 errs += buf_add(buf, lease->filename, fn_len); in script_write_params()
2297 errs += buf_add(buf, lease->server_name, sn_len); in script_write_params()
2302 errs += buf_add(buf, &lease->options[i].len, in script_write_params()
2303 sizeof(lease->options[i].len)); in script_write_params()
2304 errs += buf_add(buf, lease->options[i].data, in script_write_params()
2305 lease->options[i].len); in script_write_params()