summaryrefslogtreecommitdiff
path: root/net/bootp.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/bootp.c')
-rw-r--r--net/bootp.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/net/bootp.c b/net/bootp.c
index b760b88..9eae34f 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -117,10 +117,15 @@ static int BootpCheckPkt(uchar *pkt, unsigned dest, unsigned src, unsigned len)
*/
static void BootpCopyNetParams(Bootp_t *bp)
{
+ IPaddr_t tmp_ip;
+
NetCopyIP(&NetOurIP, &bp->bp_yiaddr);
- NetCopyIP(&NetServerIP, &bp->bp_siaddr);
+ NetCopyIP(&tmp_ip, &bp->bp_siaddr);
+ if (tmp_ip != 0)
+ NetCopyIP(&NetServerIP, &bp->bp_siaddr);
memcpy (NetServerEther, ((Ethernet_t *)NetRxPkt)->et_src, 6);
- copy_filename (BootFile, bp->bp_file, sizeof(BootFile));
+ if (strlen(bp->bp_file) > 0)
+ copy_filename (BootFile, bp->bp_file, sizeof(BootFile));
debug ("Bootfile: %s\n", BootFile);