mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-30 00:21:06 +00:00
f395e75e27
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
|
||
---|---|---|
.. | ||
arp.c | ||
arp.h | ||
bootp.c | ||
bootp.h | ||
cdp.c | ||
cdp.h | ||
dns.c | ||
dns.h | ||
eth.c | ||
link_local.c | ||
link_local.h | ||
Makefile | ||
net.c | ||
net_rand.h | ||
nfs.c | ||
nfs.h | ||
ping.c | ||
ping.h | ||
rarp.c | ||
rarp.h | ||
sntp.c | ||
sntp.h | ||
tftp.c | ||
tftp.h |