summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-05-17 07:41:49 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-05-17 07:41:49 +0200
commit8fae46a207621bcf1ad847d0b4e1730db454f055 (patch)
tree2893426f728db6948e213a8594103df2f02a9ea1
parentb9ac45694f7ccf6b0d8a3e67a00ea4a6827295d3 (diff)
parent66691793b091356f4dc081ffe2e942dee7c1cc04 (diff)
downloadbarebox-8fae46a207621bcf1ad847d0b4e1730db454f055.tar.gz
barebox-8fae46a207621bcf1ad847d0b4e1730db454f055.tar.xz
Merge branch 'pu/dhcp'
-rw-r--r--net/dhcp.c15
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: