mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-24 21:42:10 -05:00
PREFER_IPV4_ADDRESS is broken on IPv6-only hosts, as it causes busybox
utilities (ping, traceroute, ntpd) to forcibly use the A record instead of
the AAAA record when resolving a DNS name. This obviously fails when
there is no IPv4 connectivity. Since IPv6-only hosts or routers will only
become more common over time, disable PREFER_IPV4_ADDRESS to support this
use-case.
As a side-effect, disabling PREFER_IPV4_ADDRESS changes the default
resolution behaviour of busybox utilities on dual-stack hosts. Busybox
utilities now simply use the order given by getaddrinfo(), so they will
now prefer IPv6 addresses when resolving a name with both A and AAAA
records if there is IPv6 connectivity. This is in line with RFC 6724.
PREFER_IPV4_ADDRESS was likely intended to work around naive
implementations of getaddrinfo() that could return AAAA records first,
even on an IPv4-only host. But both musl (since 1.1.3) and glibc
correctly implement RFC 6724 for getaddrinfo() and check connectivity to
determine the correct order in which to return records. On IPv4-only
hosts, getaddrinfo() will return A records first, so there is no need for
the PREFER_IPV4_ADDRESS hack.
See also: https://bugs.busybox.net/show_bug.cgi?id=12381
Fixes: FS#84
Fixes: FS#2608
References: https://github.com/openwrt/openwrt/pull/4167
Signed-off-by: Alexander Traud <pabstraud@compuserve.com>
Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| adb | ||
| bcm27xx-userland | ||
| bcm4908img | ||
| bsdiff | ||
| busybox | ||
| bzip2 | ||
| checkpolicy | ||
| ct-bugcheck | ||
| e2fsprogs | ||
| f2fs-tools | ||
| fbtest | ||
| fritz-tools | ||
| jboot-tools | ||
| jsonfilter | ||
| lua | ||
| lua5.3 | ||
| mdadm | ||
| mtd-utils | ||
| nvram | ||
| osafeloader | ||
| oseama | ||
| otrx | ||
| policycoreutils | ||
| px5g-mbedtls | ||
| px5g-wolfssl | ||
| ravpower-mcu | ||
| secilc | ||
| spidev_test | ||
| ugps | ||
| usbmode | ||
| util-linux | ||