Skip to content

Commit

Permalink
Always background DHCP and keep trying on failure
Browse files Browse the repository at this point in the history
  • Loading branch information
Sebastien Bourdeauducq committed Nov 27, 2011
1 parent 3899dc0 commit d4cb8bd
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions src/sysconfig.c
Expand Up @@ -162,11 +162,6 @@ static void format_ip(unsigned int ip, char *out)

#define SYSCONFIG_FILE "/ssd/sysconfig.bin"

static void my_dhcp()
{
rtems_bsdnet_do_dhcp_timeout();
}

static void sysconfig_credentials_lock_init();
static void sysconfig_credentials_lock();
static void sysconfig_credentials_unlock();
Expand All @@ -181,6 +176,8 @@ int sysconfig_is_rescue()
return strcmp(bsp_cmdline, "rescue") == 0;
}

static void start_dhcp_task();

void sysconfig_load()
{
struct sysconfig conf;
Expand All @@ -194,7 +191,7 @@ void sysconfig_load()
}

if(sysconfig.dhcp_enable)
rtems_bsdnet_config.bootp = my_dhcp;
rtems_bsdnet_config.bootp = start_dhcp_task;
else {
if(sysconfig.ip) {
format_ip(sysconfig.ip, ip_fmt);
Expand Down Expand Up @@ -466,7 +463,13 @@ static int dhcp_task_running;

static rtems_task dhcp_task(rtems_task_argument argument)
{
rtems_bsdnet_do_dhcp_timeout();
int r;

while(sysconfig.dhcp_enable) {
r = rtems_bsdnet_do_dhcp_timeout();
if(r >= 0)
break; /* success */
}
dhcp_task_running = 0;
rtems_task_delete(RTEMS_SELF);
}
Expand Down

0 comments on commit d4cb8bd

Please sign in to comment.