diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-17 07:41:49 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-17 07:41:49 +0200 |
commit | 8fae46a207621bcf1ad847d0b4e1730db454f055 (patch) | |
tree | 2893426f728db6948e213a8594103df2f02a9ea1 | |
parent | b9ac45694f7ccf6b0d8a3e67a00ea4a6827295d3 (diff) | |
parent | 66691793b091356f4dc081ffe2e942dee7c1cc04 (diff) | |
download | barebox-8fae46a207621bcf1ad847d0b4e1730db454f055.tar.gz barebox-8fae46a207621bcf1ad847d0b4e1730db454f055.tar.xz |
Merge branch 'pu/dhcp'
-rw-r--r-- | net/dhcp.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/net/dhcp.c b/net/dhcp.c index 8233ec3502..1261b2d73a 100644 --- a/net/dhcp.c +++ b/net/dhcp.c @@ -527,9 +527,6 @@ static void dhcp_options_process(unsigned char *popt, struct bootp *bp) popt += oplen + 2; /* Process next option */ } - - if (dhcp_tftpname[0] != 0) - net_set_serverip(resolv(dhcp_tftpname)); } static int dhcp_message_type(unsigned char *popt) @@ -767,8 +764,10 @@ static int do_dhcp(int argc, char *argv[]) goto out1; while (dhcp_state != BOUND) { - if (ctrlc()) - break; + if (ctrlc()) { + ret = -EINTR; + goto out1; + } if (!retries) { ret = -ETIMEDOUT; goto out1; @@ -785,6 +784,12 @@ static int do_dhcp(int argc, char *argv[]) } } + if (dhcp_tftpname[0] != 0) { + IPaddr_t tftpserver = resolv(dhcp_tftpname); + if (tftpserver) + net_set_serverip(tftpserver); + } + out1: net_unregister(dhcp_con); out: |