cs->packetNum is not descriptive and is not used outside of state.c.
Rename it to num_dhcp_requests that is a static global to state.c.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/* config.h - internal configuration and state for ndhc
|
/* config.h - internal configuration and state for ndhc
|
||||||
* Time-stamp: <2011-07-03 05:10:18 njk>
|
* Time-stamp: <2011-07-05 15:43:16 njk>
|
||||||
*
|
*
|
||||||
* (c) 2004-2011 Nicholas J. Kain <njkain at gmail dot com>
|
* (c) 2004-2011 Nicholas J. Kain <njkain at gmail dot com>
|
||||||
*
|
*
|
||||||
@@ -29,7 +29,6 @@ struct client_state_t {
|
|||||||
int arpPrevState;
|
int arpPrevState;
|
||||||
int ifsPrevState;
|
int ifsPrevState;
|
||||||
int listenMode;
|
int listenMode;
|
||||||
int packetNum;
|
|
||||||
int epollFd, signalFd, listenFd, arpFd, nlFd;
|
int epollFd, signalFd, listenFd, arpFd, nlFd;
|
||||||
int timeout, oldTimeout;
|
int timeout, oldTimeout;
|
||||||
uint32_t clientAddr, serverAddr, routerAddr;
|
uint32_t clientAddr, serverAddr, routerAddr;
|
||||||
|
24
ndhc/state.c
24
ndhc/state.c
@@ -48,6 +48,8 @@ dhcp_state_t dhcp_states[] = {
|
|||||||
{ 0, 0, 0, 0}, // NUM_STATES
|
{ 0, 0, 0, 0}, // NUM_STATES
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static unsigned int num_dhcp_requests;
|
||||||
|
|
||||||
static int delay_timeout(int numpackets)
|
static int delay_timeout(int numpackets)
|
||||||
{
|
{
|
||||||
int to = 64;
|
int to = 64;
|
||||||
@@ -63,7 +65,7 @@ void reinit_selecting(struct client_state_t *cs, int timeout)
|
|||||||
cs->dhcpState = DS_SELECTING;
|
cs->dhcpState = DS_SELECTING;
|
||||||
cs->timeout = timeout;
|
cs->timeout = timeout;
|
||||||
cs->clientAddr = 0;
|
cs->clientAddr = 0;
|
||||||
cs->packetNum = 0;
|
num_dhcp_requests = 0;
|
||||||
arp_reset_send_stats();
|
arp_reset_send_stats();
|
||||||
set_listen_raw(cs);
|
set_listen_raw(cs);
|
||||||
|
|
||||||
@@ -75,10 +77,10 @@ void reinit_selecting(struct client_state_t *cs, int timeout)
|
|||||||
// again. Otherwise, return to the DHCP initialization state.
|
// again. Otherwise, return to the DHCP initialization state.
|
||||||
static void requesting_timeout(struct client_state_t *cs)
|
static void requesting_timeout(struct client_state_t *cs)
|
||||||
{
|
{
|
||||||
if (cs->packetNum < 5) {
|
if (num_dhcp_requests < 5) {
|
||||||
send_selecting(cs);
|
send_selecting(cs);
|
||||||
cs->timeout = delay_timeout(cs->packetNum);
|
cs->timeout = delay_timeout(num_dhcp_requests);
|
||||||
cs->packetNum++;
|
num_dhcp_requests++;
|
||||||
} else
|
} else
|
||||||
reinit_selecting(cs, 0);
|
reinit_selecting(cs, 0);
|
||||||
}
|
}
|
||||||
@@ -208,7 +210,7 @@ static void selecting_packet(struct client_state_t *cs, struct dhcpmsg *packet,
|
|||||||
cs->clientAddr = packet->yiaddr;
|
cs->clientAddr = packet->yiaddr;
|
||||||
cs->dhcpState = DS_REQUESTING;
|
cs->dhcpState = DS_REQUESTING;
|
||||||
cs->timeout = 0;
|
cs->timeout = 0;
|
||||||
cs->packetNum = 0;
|
num_dhcp_requests = 0;
|
||||||
} else {
|
} else {
|
||||||
log_line("No server ID in message");
|
log_line("No server ID in message");
|
||||||
}
|
}
|
||||||
@@ -221,7 +223,7 @@ static void selecting_packet(struct client_state_t *cs, struct dhcpmsg *packet,
|
|||||||
// again. Otherwise, background or fail.
|
// again. Otherwise, background or fail.
|
||||||
static void selecting_timeout(struct client_state_t *cs)
|
static void selecting_timeout(struct client_state_t *cs)
|
||||||
{
|
{
|
||||||
if (cs->init && cs->packetNum >= 2) {
|
if (cs->init && num_dhcp_requests >= 2) {
|
||||||
if (client_config.background_if_no_lease) {
|
if (client_config.background_if_no_lease) {
|
||||||
log_line("No lease, going to background.");
|
log_line("No lease, going to background.");
|
||||||
cs->init = 0;
|
cs->init = 0;
|
||||||
@@ -231,11 +233,11 @@ static void selecting_timeout(struct client_state_t *cs)
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cs->packetNum == 0)
|
if (num_dhcp_requests == 0)
|
||||||
cs->xid = libc_random_u32();
|
cs->xid = libc_random_u32();
|
||||||
send_discover(cs);
|
send_discover(cs);
|
||||||
cs->timeout = delay_timeout(cs->packetNum);
|
cs->timeout = delay_timeout(num_dhcp_requests);
|
||||||
cs->packetNum++;
|
num_dhcp_requests++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void anfrelease(struct client_state_t *cs)
|
static void anfrelease(struct client_state_t *cs)
|
||||||
@@ -284,7 +286,7 @@ static void frenew(struct client_state_t *cs)
|
|||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cs->packetNum = 0; // XXX necessary?
|
num_dhcp_requests = 0;
|
||||||
cs->timeout = 0;
|
cs->timeout = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,7 +316,7 @@ void ifdown_action(struct client_state_t *cs)
|
|||||||
cs->dhcpState = DS_RELEASED;
|
cs->dhcpState = DS_RELEASED;
|
||||||
cs->timeout = -1;
|
cs->timeout = -1;
|
||||||
cs->clientAddr = 0;
|
cs->clientAddr = 0;
|
||||||
cs->packetNum = 0;
|
num_dhcp_requests = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ifnocarrier_action(struct client_state_t *cs)
|
void ifnocarrier_action(struct client_state_t *cs)
|
||||||
|
Reference in New Issue
Block a user