/* * Timeout on BOOTP/DHCP request. */ static void bootp_timeout_handler(void) { ulong time_taken = get_timer(bootp_start); if (time_taken >= time_taken_max) { #ifdef CONFIG_BOOTP_MAY_FAIL puts("\nRetry time exceeded\n"); net_set_state(NETLOOP_FAIL); #else puts("\nRetry time exceeded; starting again\n"); net_start_again(); #endif } else { bootp_timeout *= 2; if (bootp_timeout > 2000) bootp_timeout = 2000; net_set_timeout_handler(bootp_timeout, bootp_timeout_handler); bootp_request(); } }
static void net_clear_handlers(void) { net_set_udp_handler(NULL); net_set_arp_handler(NULL); net_set_timeout_handler(0, NULL); }