void load_leases(char *file) { FILE *fp; unsigned int i = 0; struct dhcpOfferedAddr lease; if (!(fp = fopen(file, "r"))) { LOG(LOG_ERR, "Unable to open %s for loading", file); return; } while (i < server_config.max_leases && (load_lease(&lease, fp) == 1)) { /* ADDME: is it a static lease */ /* It is exactly a static lease */ if (!(add_lease(lease.chaddr, lease.yiaddr, lease.expires))) { LOG(LOG_WARNING, "Too many leases while loading %s\n", file); break; } i++; } DEBUG(LOG_INFO, "Load %d leases", i); fclose(fp); }
void init_dhcp() { timeout_count = TIMEOUT_RETRY_TIMES; if (load_lease(&offer_lease)) { renew = 1; generate_xid(); next_state = REQUEST; dhcp_request(); } else { next_state = DISCOVER; dhcp_discover(); } }