net-dns/c-ares: Sync with Gentoo

It's from Gentoo commit 896b86b4677ac7df1fc675496c094b5bb1deceb3.
This commit is contained in:
Flatcar Buildbot 2024-01-01 07:14:16 +00:00 committed by Krzesimir Nowak
parent 02ca55fd70
commit f7ba83506c
5 changed files with 237 additions and 3 deletions

View File

@ -2,5 +2,5 @@ DIST c-ares-1.19.1.tar.gz 1579100 BLAKE2B 4b6c9593edb1a91ab76d54ddacb1cd5d67006d
DIST c-ares-1.19.1.tar.gz.asc 488 BLAKE2B 9c47d7b3e67d9a2bd1e332912d21d20ca591fc34f81707c18a4615ea14ba2da00146d1998250a5f4dd2a0b1c04f9bd2013d4940ac734674c0bdff6815985e19d SHA512 1b204ab1a667af1326be4b7c62c0919aacd447a2e00efea4b8ef2ec9f2b13ffb236a836ff8953b0b3359727faf3fb8cfcd71d0b06a0e533a09f9e9ea66024f4e DIST c-ares-1.19.1.tar.gz.asc 488 BLAKE2B 9c47d7b3e67d9a2bd1e332912d21d20ca591fc34f81707c18a4615ea14ba2da00146d1998250a5f4dd2a0b1c04f9bd2013d4940ac734674c0bdff6815985e19d SHA512 1b204ab1a667af1326be4b7c62c0919aacd447a2e00efea4b8ef2ec9f2b13ffb236a836ff8953b0b3359727faf3fb8cfcd71d0b06a0e533a09f9e9ea66024f4e
DIST c-ares-1.21.0.tar.gz 1623742 BLAKE2B 708933603dfc6c0286e798b3244eb9d8bce500acb915a255b82e00133509e5c2ceaad6b9b4cd081fcd9193b64fdb72e4e7ff6deeca8eb1744124ab9239cacac0 SHA512 c526b0a28d8ea1c6a53215dfd52e8250c968513a667c5414459d97d46288da7e7a2193d757fc78225e56c6684b3d30e756dd3e5a31917e996c871773a34892ea DIST c-ares-1.21.0.tar.gz 1623742 BLAKE2B 708933603dfc6c0286e798b3244eb9d8bce500acb915a255b82e00133509e5c2ceaad6b9b4cd081fcd9193b64fdb72e4e7ff6deeca8eb1744124ab9239cacac0 SHA512 c526b0a28d8ea1c6a53215dfd52e8250c968513a667c5414459d97d46288da7e7a2193d757fc78225e56c6684b3d30e756dd3e5a31917e996c871773a34892ea
DIST c-ares-1.21.0.tar.gz.asc 488 BLAKE2B b1985393dfc147abe729b5622c4c92585072173a169947caf1a9521d341dac2119e34691b96e31716df66a251dbba3a5284cddd4c47af0d0bd91e20576d5671e SHA512 0e75e51ebf97ec4ed0880811ddb60f741ea190c2e63011aad9a4233fe4e2481d0c660d401a5cf596fe257930365a366082c2b5faa34bb7b346d147cfc51392ff DIST c-ares-1.21.0.tar.gz.asc 488 BLAKE2B b1985393dfc147abe729b5622c4c92585072173a169947caf1a9521d341dac2119e34691b96e31716df66a251dbba3a5284cddd4c47af0d0bd91e20576d5671e SHA512 0e75e51ebf97ec4ed0880811ddb60f741ea190c2e63011aad9a4233fe4e2481d0c660d401a5cf596fe257930365a366082c2b5faa34bb7b346d147cfc51392ff
DIST c-ares-1.22.1.tar.gz 1665059 BLAKE2B 720d0efdbcb591cf9a8b99a60f24c9c720eee4283608d12af45890f3a534e334487c9ce9eeaaed992c78ce5ff683e57ec08f5a3ba84efa818e1e39fc1ad91ed6 SHA512 9b9aa3ff48a76e7d1464f5fc644e736d09898b2245c81292c510d1a3b967dca13e4711bab564947ec99c118094c385d12a92ddd767a84153fdd21df03da75349 DIST c-ares-1.24.0.tar.gz 1368749 BLAKE2B aae99e1b5715ae4c68b84e3ceedf3e9758cf0f961bb85bfe870def2bd0342ac26d71a3a784708050c7a339360962567031e83c6b9a61a163ecaba0def6ceb24d SHA512 3701853e263de94daf19734185ad913848c19b825e0738926b418a54b0628ee1ac95a49ebfaa2ddf3eed74a7ef209e1a0a8f573df3e507ef1f11fcc53fc5eb68
DIST c-ares-1.22.1.tar.gz.asc 488 BLAKE2B a3723365cd733ca4551b039038baeb94b4e53dda3dac1c479606c07fbc09b8ea0ebbd83b26ede8e0a1782ac06dfb62b53472e0024239175d763fb1f3e6834b50 SHA512 37ad0a9c72e7a98bf83e4be107040c3223880a784e01a917dbe72861e2f4ca692100d2b8543be3c960d21fc8d3d57a7075f99ba6de61366a93783cea07cc9f76 DIST c-ares-1.24.0.tar.gz.asc 488 BLAKE2B 965dc1ec04aae5ec4fb5e3cee6dfe99c102112d12498f841377d901e87d8b13e17a48ba8393054849206a21333173bd3ab1d7c61cf76b6c7415f5bf99a7ada1c SHA512 dda1b8d3e715b5ba117542cab31826faf821061ea6ceefa77c0452f1d17d0c84a0cc5891722eb8e7f54da087c352409197d1e1a06420035a62c391e8e93cb8dd

View File

@ -21,7 +21,10 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~
IUSE="static-libs test" IUSE="static-libs test"
RESTRICT="!test? ( test )" RESTRICT="!test? ( test )"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-danielstenberg )" BDEPEND="
test? ( dev-cpp/gtest )
verify-sig? ( sec-keys/openpgp-keys-danielstenberg )
"
DOCS=( AUTHORS CHANGES NEWS README.md RELEASE-NOTES TODO ) DOCS=( AUTHORS CHANGES NEWS README.md RELEASE-NOTES TODO )
@ -40,6 +43,14 @@ QA_CONFIG_IMPL_DECL_SKIP=(
CloseSocket CloseSocket
ioctlsocket ioctlsocket
bitncmp bitncmp
ConvertInterfaceIndexToLuid
ConvertInterfaceLuidToNameA
)
PATCHES=(
"${FILESDIR}"/${P}-tests-symbol-hiding.patch
"${FILESDIR}"/${P}-getrandom.patch
"${FILESDIR}"/${P}-ares__iface_ips_enumerate-stub.patch
) )
multilib_src_configure() { multilib_src_configure() {

View File

@ -0,0 +1,34 @@
https://github.com/c-ares/c-ares/commit/eebfe0c15e1cc231500dfd79c730788790ec5251
From eebfe0c15e1cc231500dfd79c730788790ec5251 Mon Sep 17 00:00:00 2001
From: Brad House <brad@brad-house.com>
Date: Sun, 17 Dec 2023 19:03:33 -0500
Subject: [PATCH] Fix bad stub for ares__iface_ips_enumerate()
If the ability to enumerate interface ip addresses does not exist
on a system, the stub function contained the wrong prototype.
Fixes Bug: #668
Fix By: Brad House (@bradh352)
---
src/lib/ares__iface_ips.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/lib/ares__iface_ips.c b/src/lib/ares__iface_ips.c
index e10a0d80c..7cd12a605 100644
--- a/src/lib/ares__iface_ips.c
+++ b/src/lib/ares__iface_ips.c
@@ -510,11 +510,10 @@ static ares_status_t ares__iface_ips_enumerate(ares__iface_ips_t *ips,
#else
static ares_status_t ares__iface_ips_enumerate(ares__iface_ips_t *ips,
- ares__iface_ip_flags_t flags,
const char *name)
{
(void)ips;
- (void)flags;
+ (void)name;
return ARES_ENOTIMP;
}

View File

@ -0,0 +1,80 @@
https://github.com/c-ares/c-ares/commit/d8edb76bece36267c4c55355ae9c7009e131a0e0
From d8edb76bece36267c4c55355ae9c7009e131a0e0 Mon Sep 17 00:00:00 2001
From: Brad House <brad@brad-house.com>
Date: Sun, 17 Dec 2023 11:08:21 -0500
Subject: [PATCH] getrandom() may require sys/random.h on some systems
There is a reported build issue where getrandom() is detected
but compile fails due to a missing prototype. This commit attempts
to resolve that issue.
Fixes Bug: #665
Fix By: Brad House (@bradh352)
---
CMakeLists.txt | 2 ++
configure.ac | 1 +
src/lib/ares_config.h.cmake | 3 +++
src/lib/ares_rand.c | 3 +++
4 files changed, 9 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a8d3eed06..29f5d7ed3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -225,6 +225,7 @@ CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
CHECK_INCLUDE_FILES (sys/uio.h HAVE_SYS_UIO_H)
+CHECK_INCLUDE_FILES (sys/random.h HAVE_SYS_RANDOM_H)
CHECK_INCLUDE_FILES (ifaddrs.h HAVE_IFADDRS_H)
CHECK_INCLUDE_FILES (time.h HAVE_TIME_H)
CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
@@ -323,6 +324,7 @@ CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKIO_H sys/sockio.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_TIME_H sys/time.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_STAT_H sys/stat.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_UIO_H sys/uio.h)
+CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_RANDOM_H sys/random.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_TIME_H time.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_FCNTL_H fcntl.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_UNISTD_H unistd.h)
diff --git a/configure.ac b/configure.ac
index 7a6b14092..e9c2534cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -574,6 +574,7 @@ AC_CHECK_HEADERS(
sys/ioctl.h \
sys/param.h \
sys/uio.h \
+ sys/random.h \
assert.h \
iphlpapi.h \
netioapi.h \
diff --git a/src/lib/ares_config.h.cmake b/src/lib/ares_config.h.cmake
index c2974dced..3fb85d54f 100644
--- a/src/lib/ares_config.h.cmake
+++ b/src/lib/ares_config.h.cmake
@@ -320,6 +320,9 @@
/* Define to 1 if you have the <sys/param.h> header file. */
#cmakedefine HAVE_SYS_PARAM_H
+/* Define to 1 if you have the <sys/random.h> header file. */
+#cmakedefine HAVE_SYS_RANDOM_H
+
/* Define to 1 if you have the <sys/select.h> header file. */
#cmakedefine HAVE_SYS_SELECT_H
diff --git a/src/lib/ares_rand.c b/src/lib/ares_rand.c
index e6e35ef61..867ca3340 100644
--- a/src/lib/ares_rand.c
+++ b/src/lib/ares_rand.c
@@ -28,6 +28,9 @@
#include "ares.h"
#include "ares_private.h"
#include <stdlib.h>
+#ifdef HAVE_SYS_RANDOM_H
+# include <sys/random.h>
+#endif
typedef enum {

View File

@ -0,0 +1,109 @@
https://github.com/c-ares/c-ares/commit/7dd384a99cc385e408e64c3e0af4e0e2136ed034
From 7dd384a99cc385e408e64c3e0af4e0e2136ed034 Mon Sep 17 00:00:00 2001
From: Brad House <brad@brad-house.com>
Date: Sun, 17 Dec 2023 08:16:24 -0500
Subject: [PATCH] fix test building with symbol hiding
New test cases depend on internal symbols for calculating timeouts.
Disable those test features if symbol hiding is enabled.
Fixes Bug: #664
Fix By: Brad House (@bradh352)
---
test/ares-test-mock-ai.cc | 2 ++
test/ares-test-mock.cc | 4 ++--
test/ares-test.cc | 12 ++++++++++++
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/test/ares-test-mock-ai.cc b/test/ares-test-mock-ai.cc
index c55676f6c..57b9d5ee2 100644
--- a/test/ares-test-mock-ai.cc
+++ b/test/ares-test-mock-ai.cc
@@ -442,6 +442,7 @@ TEST_P(MockChannelTestAI, FamilyV6) {
EXPECT_THAT(result.ai_, IncludesV6Address("2121:0000:0000:0000:0000:0000:0000:0303"));
}
+#ifndef CARES_SYMBOL_HIDING
// Test case for Issue #662
TEST_P(MockChannelTestAI, PartialQueryCancel) {
std::vector<byte> nothing;
@@ -469,6 +470,7 @@ TEST_P(MockChannelTestAI, PartialQueryCancel) {
EXPECT_TRUE(result.done_);
EXPECT_EQ(ARES_ECANCELLED, result.status_);
}
+#endif
TEST_P(MockChannelTestAI, FamilyV4) {
DNSPacket rsp4;
diff --git a/test/ares-test-mock.cc b/test/ares-test-mock.cc
index 6afa8f989..849eb6980 100644
--- a/test/ares-test-mock.cc
+++ b/test/ares-test-mock.cc
@@ -826,7 +826,7 @@ TEST_P(MockChannelTest, V4WorksV6Timeout) {
EXPECT_EQ("{'www.google.com' aliases=[] addrs=[1.2.3.4]}", ss.str());
}
-
+#ifndef CARES_SYMBOL_HIDING
// Test case for Issue #662
TEST_P(MockChannelTest, PartialQueryCancel) {
std::vector<byte> nothing;
@@ -849,7 +849,7 @@ TEST_P(MockChannelTest, PartialQueryCancel) {
EXPECT_TRUE(result.done_);
EXPECT_EQ(ARES_ECANCELLED, result.status_);
}
-
+#endif
TEST_P(MockChannelTest, UnspecifiedFamilyV6) {
DNSPacket rsp6;
diff --git a/test/ares-test.cc b/test/ares-test.cc
index faad01486..3a55b73d3 100644
--- a/test/ares-test.cc
+++ b/test/ares-test.cc
@@ -105,6 +105,8 @@ void ProcessWork(ares_channel_t *channel,
unsigned int cancel_ms) {
int nfds, count;
fd_set readers, writers;
+
+#ifndef CARES_SYMBOL_HIDING
struct timeval tv_begin = ares__tvnow();
struct timeval tv_cancel = tv_begin;
@@ -113,10 +115,18 @@ void ProcessWork(ares_channel_t *channel,
tv_cancel.tv_sec += (cancel_ms / 1000);
tv_cancel.tv_usec += ((cancel_ms % 1000) * 1000);
}
+#else
+ if (cancel_ms) {
+ std::cerr << "library built with symbol hiding, can't test with cancel support" << std::endl;
+ return;
+ }
+#endif
while (true) {
+#ifndef CARES_SYMBOL_HIDING
struct timeval tv_now = ares__tvnow();
struct timeval tv_remaining;
+#endif
struct timeval tv;
struct timeval *tv_select;
@@ -142,6 +152,7 @@ void ProcessWork(ares_channel_t *channel,
if (tv_select == NULL)
return;
+#ifndef CARES_SYMBOL_HIDING
if (cancel_ms) {
unsigned int remaining_ms;
ares__timeval_remaining(&tv_remaining,
@@ -157,6 +168,7 @@ void ProcessWork(ares_channel_t *channel,
tv_select = ares_timeout(channel, &tv_remaining, &tv);
}
}
+#endif
count = select(nfds, &readers, &writers, nullptr, tv_select);
if (count < 0) {