X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=net%2Farp.c;h=824d2e9393550ea250f357b2762cf2f465e5fe66;hb=4491327d59179a212e36f1889bd143c99159138b;hp=953f312b63ae392271db3045806a3c6d39d5af72;hpb=85d25e0e7630a61bdbf2d4e8b1991e3cc6c96d65;p=oweals%2Fu-boot.git diff --git a/net/arp.c b/net/arp.c index 953f312b63..824d2e9393 100644 --- a/net/arp.c +++ b/net/arp.c @@ -96,12 +96,12 @@ void arp_request(void) arp_raw_request(net_ip, net_null_ethaddr, net_arp_wait_reply_ip); } -void arp_timeout_check(void) +int arp_timeout_check(void) { ulong t; if (!net_arp_wait_packet_ip.s_addr) - return; + return 0; t = get_timer(0); @@ -112,12 +112,13 @@ void arp_timeout_check(void) if (arp_wait_try >= ARP_TIMEOUT_COUNT) { puts("\nARP Retry count exceeded; starting again\n"); arp_wait_try = 0; - NetStartAgain(); + net_set_state(NETLOOP_FAIL); } else { arp_wait_timer_start = t; arp_request(); } } + return 1; } void arp_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)