Hi Wolfgang, On Thu, Jan 07, 2016 at 12:49:42AM +0100, Wolfgang Denk wrote: >Dear Peng Fan, > >In message <[email protected]> you wrote: >> When doing `dhcp`, there is a bad dhcp server in my network >> which always reply dhcp request with yiaddr 0, which cause >> uboot can not successfully get ipaddr from the good dhcp server. >> But the Linux PC can get the ip address even if there is a bad >> dhcp server. This patch is to fix that even if there is a bad >> dhcp server, uboot can still get ipaddr and tftp work ok. >> >> The way is to ignore the packets from the bad dhcp server by filtering >> out the yiaddr whose value is 0. >> >> Signed-off-by: Peng Fan <[email protected]> >> Cc: Joe Hershberger <[email protected]> >> --- >> net/bootp.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/net/bootp.c b/net/bootp.c >> index 8aeddb0..ff2ebbe 100644 >> --- a/net/bootp.c >> +++ b/net/bootp.c >> @@ -992,6 +992,9 @@ static void dhcp_handler(uchar *pkt, unsigned dest, >> struct in_addr sip, >> if (check_reply_packet(pkt, dest, src, len)) >> return; >> >> + if (net_read_ip(&bp->bp_yiaddr).s_addr == 0) >> + return; >> + >> debug("DHCPHandler: got DHCP packet: (src=%d, dst=%d, len=%d) state: " >> "%d\n", src, dest, len, dhcp_state); > >I suggest the return should be done _after_ the debug message.
Yeah. Good suggestion. Will do this in V2. Thanks, Peng. > >Best regards, > >Wolfgang Denk > >-- >DENX Software Engineering GmbH, Managing Director: Wolfgang Denk >HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany >Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [email protected] >The human race is a race of cowards; and I am not only marching in >that procession but carrying a banner. - Mark Twain _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

