|
@@ -386,12 +386,19 @@ static void bootp_timeout_handler(void)
|
|
|
|
|
|
if (time_taken >= time_taken_max) {
|
|
if (time_taken >= time_taken_max) {
|
|
#ifdef CONFIG_BOOTP_MAY_FAIL
|
|
#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
|
|
#endif
|
|
|
|
+ {
|
|
|
|
+ puts("\nRetry time exceeded; starting again\n");
|
|
|
|
+ net_start_again();
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
bootp_timeout *= 2;
|
|
bootp_timeout *= 2;
|
|
if (bootp_timeout > 2000)
|
|
if (bootp_timeout > 2000)
|