mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
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 | ||