Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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();
	}
}