Exemple #1
0
ER get_dhcp_addr(DHCP *dhcp)
{
    dhcp_discover(dhcp);
    if(dhcp_offer(dhcp) < 0){
        syslog(LOG_NOTICE, "DHCP Offer error");
        return E_SYS;
    }
    dhcp_request(dhcp);
    if(dhcp_ack(dhcp) < 0){
        syslog(LOG_NOTICE, "DHCP Ack error");
        return E_SYS;
    }
    return E_OK;
}
Exemple #2
0
void dhcp_discover()
{
	if (next_state != DISCOVER) {
		fprintf(err, "State is not DISCOVER!\n");
		return;
	}
	fprintf(err, "dhcp_discover()...\n");
	
	generate_xid();
	renew = 0;
	
	int len;
	struct dhcp_packet *packet = make_packet(&len);
	send_packet((char*)packet, len);
	free(packet);
	
	next_state = OFFER;
	dhcp_offer();
}