Add arpreply_clear() helper.
This commit is contained in:
parent
96fee03a16
commit
bec1d30279
28
ndhc/arp.c
28
ndhc/arp.c
@ -1,5 +1,5 @@
|
|||||||
/* arp.c - arp ping checking
|
/* arp.c - arp ping checking
|
||||||
* Time-stamp: <2011-05-31 11:13:21 njk>
|
* Time-stamp: <2011-05-31 11:24:14 njk>
|
||||||
*
|
*
|
||||||
* Copyright 2010-2011 Nicholas J. Kain <njkain@gmail.com>
|
* Copyright 2010-2011 Nicholas J. Kain <njkain@gmail.com>
|
||||||
*
|
*
|
||||||
@ -114,6 +114,12 @@ static int arpping(struct client_state_t *cs, uint32_t test_ip,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void arpreply_clear()
|
||||||
|
{
|
||||||
|
memset(&arpreply, 0, sizeof arpreply);
|
||||||
|
arpreply_offset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
int arp_check(struct client_state_t *cs, struct dhcpMessage *packet)
|
int arp_check(struct client_state_t *cs, struct dhcpMessage *packet)
|
||||||
{
|
{
|
||||||
if (arpping(cs, arp_dhcp_packet.yiaddr, 0, client_config.arp,
|
if (arpping(cs, arp_dhcp_packet.yiaddr, 0, client_config.arp,
|
||||||
@ -123,8 +129,7 @@ int arp_check(struct client_state_t *cs, struct dhcpMessage *packet)
|
|||||||
cs->dhcpState = DS_ARP_CHECK;
|
cs->dhcpState = DS_ARP_CHECK;
|
||||||
cs->timeout = 2000;
|
cs->timeout = 2000;
|
||||||
memcpy(&arp_dhcp_packet, packet, sizeof (struct dhcpMessage));
|
memcpy(&arp_dhcp_packet, packet, sizeof (struct dhcpMessage));
|
||||||
memset(&arpreply, 0, sizeof arpreply);
|
arpreply_clear();
|
||||||
arpreply_offset = 0;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,8 +143,7 @@ int arp_gw_check(struct client_state_t *cs)
|
|||||||
cs->oldTimeout = cs->timeout;
|
cs->oldTimeout = cs->timeout;
|
||||||
cs->timeout = 2000;
|
cs->timeout = 2000;
|
||||||
memset(&arp_dhcp_packet, 0, sizeof (struct dhcpMessage));
|
memset(&arp_dhcp_packet, 0, sizeof (struct dhcpMessage));
|
||||||
memset(&arpreply, 0, sizeof arpreply);
|
arpreply_clear();
|
||||||
arpreply_offset = 0;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,8 +156,7 @@ int arp_get_gw_hwaddr(struct client_state_t *cs)
|
|||||||
return -1;
|
return -1;
|
||||||
log_line("arp_get_hw_addr: searching for gw address");
|
log_line("arp_get_hw_addr: searching for gw address");
|
||||||
memset(&arp_dhcp_packet, 0, sizeof (struct dhcpMessage));
|
memset(&arp_dhcp_packet, 0, sizeof (struct dhcpMessage));
|
||||||
memset(&arpreply, 0, sizeof arpreply);
|
arpreply_clear();
|
||||||
arpreply_offset = 0;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,7 +220,7 @@ void arp_success(struct client_state_t *cs)
|
|||||||
background(cs);
|
background(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void arp_gw_success(struct client_state_t *cs)
|
static void arp_gw_success(struct client_state_t *cs)
|
||||||
{
|
{
|
||||||
log_line("arp: gateway seems unchanged");
|
log_line("arp: gateway seems unchanged");
|
||||||
arp_close_fd(cs);
|
arp_close_fd(cs);
|
||||||
@ -291,8 +294,7 @@ void handle_arp_response(struct client_state_t *cs)
|
|||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
log_line("arp ping noise while waiting for check timeout");
|
log_line("arp ping noise while waiting for check timeout");
|
||||||
memset(&arpreply, 0, sizeof arpreply);
|
arpreply_clear();
|
||||||
arpreply_offset = 0;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DS_ARP_GW_CHECK:
|
case DS_ARP_GW_CHECK:
|
||||||
@ -305,8 +307,7 @@ void handle_arp_response(struct client_state_t *cs)
|
|||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
log_line("still waiting for gateway to reply to arp ping");
|
log_line("still waiting for gateway to reply to arp ping");
|
||||||
memset(&arpreply, 0, sizeof arpreply);
|
arpreply_clear();
|
||||||
arpreply_offset = 0;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DS_BOUND:
|
case DS_BOUND:
|
||||||
@ -321,8 +322,7 @@ void handle_arp_response(struct client_state_t *cs)
|
|||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
log_line("still looking for gateway hardware address");
|
log_line("still looking for gateway hardware address");
|
||||||
memset(&arpreply, 0, sizeof arpreply);
|
arpreply_clear();
|
||||||
arpreply_offset = 0;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user