net: Re-check prerequisites when autoloading

With net autoload, we check the prerequisites for the initial command,
but the greater prerequisites when autoloading are not checked.

If we would attempt to autoload, check those prerequisites too.

If we are not expecting a serverip from the server, then don't worry
about it not being set, but don't attempt to load if it isn't.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
lime2-spi
Joe Hershberger 6 years ago
parent 3a66fcb7c3
commit 3855cad623
  1. 20
      net/net.c

@ -332,6 +332,16 @@ void net_auto_load(void)
const char *s = env_get("autoload");
if (s != NULL && strcmp(s, "NFS") == 0) {
if (net_check_prereq(NFS)) {
/* We aren't expecting to get a serverip, so just accept the assigned IP */
#ifdef CONFIG_BOOTP_SERVERIP
net_set_state(NETLOOP_SUCCESS);
#else
printf("Cannot autoload with NFS\n");
net_set_state(NETLOOP_FAIL);
#endif
return;
}
/*
* Use NFS to load the bootfile.
*/
@ -347,6 +357,16 @@ void net_auto_load(void)
net_set_state(NETLOOP_SUCCESS);
return;
}
if (net_check_prereq(TFTPGET)) {
/* We aren't expecting to get a serverip, so just accept the assigned IP */
#ifdef CONFIG_BOOTP_SERVERIP
net_set_state(NETLOOP_SUCCESS);
#else
printf("Cannot autoload with TFTPGET\n");
net_set_state(NETLOOP_FAIL);
#endif
return;
}
tftp_start(TFTPGET);
}

Loading…
Cancel
Save