Fix three bugs during tests.
diff --git a/src/netif/etharp.c b/src/netif/etharp.c
index c3c0bec..8cd43ed 100644
--- a/src/netif/etharp.c
+++ b/src/netif/etharp.c
@@ -526,7 +526,7 @@
struct eth_addr *dest, *srcaddr, mcastaddr;
struct eth_hdr *ethhdr;
s8_t i;
- err_t result;
+ err_t result = ERR_OK;
/* make room for Ethernet header - should not fail*/
if (pbuf_header(q, sizeof(struct eth_hdr)) != 0) {
@@ -631,6 +631,7 @@
err_t etharp_query(struct netif *netif, struct ip_addr *ipaddr, struct pbuf *q)
{
struct pbuf *p;
+ struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr;
err_t result = ERR_OK;
s8_t i; /* ARP entry index */
u8_t k; /* Ethernet address octet index */
@@ -720,12 +721,11 @@
/* { i is either a (new or existing) PENDING or STABLE entry } */
/* packet given? */
- if (q != NULL)
+ if (q != NULL) {
/* stable entry? */
if (arp_table[i].state == ETHARP_STATE_STABLE) {
/* we have a valid IP->Ethernet address mapping,
* fill in the Ethernet header for the outgoing packet */
- struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr;
struct eth_hdr *ethhdr = q->payload;
for(k = 0; k < netif->hwaddr_len; k++) {
ethhdr->dest.addr[k] = arp_table[i].ethaddr.addr[k];