u-boot/net
Gerhard Sittig f395e75e27 net: dns: fix for DNS queries sent to the wrong MAC address
When a DNS query is sent out, the ethernet packet can get directed to
the MAC address of a server that was communicated to before.  This is
wrong when the previously stored MAC address corresponds to a different
server's IP address, i.e. when the IP address of the previous and the
current communication are different.

The error can get reproduced by running a sequence of e.g. a TFTP
download and a DNS query, where the TFTP and DNS servers reside on
individual machines.

The fix is to clear the server's MAC address that might be left from a
previous operation, and to fetch the peer's MAC address in a new ARP
lookup, before the DNS query is sent.  This is the approach taken in
other network services, like 8e52533d10 ("net: tftpsrv: Get correct
client MAC address").

Reported-by: Dirk Zimoch <dirk.zimoch@psi.ch>
Signed-off-by: Gerhard Sittig <gsi@denx.de>
2014-09-16 12:24:00 -04:00
..
arp.c net/: sparse fixes 2012-11-04 11:00:36 -07:00
arp.h net: Separate ArpRequest() into lower-level func 2012-05-23 17:53:07 -05:00
bootp.c net: More BOOTP retry timeout improvements 2014-08-21 12:01:30 -04:00
bootp.h net: BOOTP retry timeout improvements 2014-08-09 11:17:03 -04:00
cdp.c net: Refactor to separate the UDP handler from the ARP handler 2012-05-23 17:52:53 -05:00
cdp.h net: cosmetic: Rename CDPHandler to cdp_receive 2012-05-23 17:46:16 -05:00
dns.c net: dns: fix for DNS queries sent to the wrong MAC address 2014-09-16 12:24:00 -04:00
dns.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
eth.c Ethernet: let user know if there is no valid ethernet address 2014-07-22 07:44:28 -04:00
link_local.c net: Correct check for link-local target IP conflict 2013-06-24 19:11:13 -05:00
link_local.h net: Add link-local addressing support 2012-05-23 17:53:08 -05:00
Makefile kbuild: use Linux Kernel build scripts 2014-02-19 11:07:50 -05:00
net_rand.h net: use common rand()/srand() functions 2012-07-07 14:07:32 +02:00
net.c net: BOOTP retry timeout improvements 2014-08-09 11:17:03 -04:00
nfs.c net: nfs: add dynamic wait period 2013-06-24 19:10:15 -05:00
nfs.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
ping.c net: Allow filtering on debug traces in the net subsystem 2012-05-23 17:53:08 -05:00
ping.h net/: sparse fixes 2012-11-04 11:00:36 -07:00
rarp.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
rarp.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
sntp.c net: Refactor to separate the UDP handler from the ARP handler 2012-05-23 17:52:53 -05:00
sntp.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
tftp.c net: tftpsrv: Get correct client MAC address 2013-11-22 17:03:18 -06:00
tftp.h net/: sparse fixes 2012-11-04 11:00:36 -07:00