summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/bootp.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/net/bootp.c b/net/bootp.c
index 59bb2099f1..efa959971c 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -386,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)