diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/bootp.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/net/bootp.c b/net/bootp.c index 73370a13fe..efa959971c 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -14,7 +14,6 @@ #include <net.h> #include <net/tftp.h> #include "bootp.h" -#include "nfs.h" #ifdef CONFIG_LED_STATUS #include <status_led.h> #endif @@ -387,12 +386,19 @@ static void bootp_timeout_handler(void) 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(); + char *ethrotate; + + ethrotate = env_get("ethrotate"); + if ((ethrotate && strcmp(ethrotate, "no") == 0) || + net_restart_wrap) { + puts("\nRetry time exceeded\n"); + net_set_state(NETLOOP_FAIL); + } else #endif + { + puts("\nRetry time exceeded; starting again\n"); + net_start_again(); + } } else { bootp_timeout *= 2; if (bootp_timeout > 2000) |