Exemplo n.º 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;
}
Exemplo n.º 2
0
void dhcp_request()
{
	if (next_state != REQUEST) {
		fprintf(err, "State is not REQUEST!\n");
		return;
	}
	fprintf(err, "dhcp_request()...\n");
	
	int len;
	struct dhcp_packet *packet = make_packet(&len);
	send_packet((char*)packet, len);
	free(packet);
	
	next_state = ACK;
	dhcp_ack();
}