mirror of
https://github.com/immortalwrt/immortalwrt
synced 2025-01-09 04:29:03 +08:00
b62fa7453a
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 |