Skip to content

Commit

Permalink
deps: update c-ares to 1.26.0
Browse files Browse the repository at this point in the history
PR-URL: #51582
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
  • Loading branch information
nodejs-github-bot authored and richardlau committed Mar 20, 2024
1 parent 9498ac8 commit c688680
Show file tree
Hide file tree
Showing 75 changed files with 6,673 additions and 2,912 deletions.
206 changes: 138 additions & 68 deletions deps/cares/CHANGES
Original file line number Diff line number Diff line change
@@ -1,5 +1,143 @@
Changelog for the c-ares project. Generated with git2changes.pl

Version 1.26.0 (25 Jan 2024)

Brad House (25 Jan 2024)
- clusterfuzz: enforce maximum DNS packet size due to long parser time

GitHub (24 Jan 2024)
- [Brad House brought this change]

Release prep for c-ares 1.26.0 (#698)

release prep

Brad House (24 Jan 2024)
- adig: Differentiate between internal and server error

Should not output "Got answer" if there was no answer from the
server, instead should just output the internal error.

Fix By: Gisle Vanem (@gvanem)

GitHub (24 Jan 2024)
- [Brad House brought this change]

Event Subsystem: No longer require integrators to have their own (#696)

This PR implements an event thread to process all events on file descriptors registered by c-ares. Prior to this feature, integrators were required to understand the internals of c-ares and how to monitor file descriptors and timeouts and process events.

Implements OS-specific efficient polling such as epoll(), kqueue(), or IOCP, and falls back to poll() or select() if otherwise unsupported. At this point, it depends on basic threading primitives such as pthreads or windows threads.

If enabled via the ARES_OPT_EVENT_THREAD option passed to ares_init_options(), then socket callbacks cannot be used.

Fixes Bug: #611
Fix By: Brad House (@bradh352)

- [Erik Lax brought this change]

Added flags to are_dns_parse to force RAW packet parsing (#693)

This pull request adds six flags to instruct the parser under various circumstances to skip parsing of the returned RR records so the raw data can be retrieved.

Fixes Bug: #686
Fix By: Erik Lax (@eriklax)

- [Brad House brought this change]

Autotools allow make to override CFLAGS/CPPFLAGS/CXXFLAGS (#695)

The previous build system allowed overwriting of CFLAGS/CPPFLAGS/CXXFLAGS on the make command line. Switch to using AM_CFLAGS/AM_CPPFLAGS/AM_CXXFLAGS when we set our own flags for building which ensures they are kept even when a user tries to override.

Fixes Bug: #694
Fix By: Brad House (@bradh352)

Brad House (16 Jan 2024)
- fix doxygen typo

GitHub (16 Jan 2024)
- [Brad House brought this change]

man ares_fds(3): mark as deprecated and add explanation (#691)

ares_fds(3) is not safe to use, mark as deprecated.

Fixes Issue: #687
Fix By: Brad House (@bradh352)

- [Brad House brought this change]

autotools: fix building for 32bit windows due to stdcall symbol mangling (#689)

Use AC_CHECK_DECL not AC_CHECK_FUNCS, while this doesn't do a linkage test, it just makes sure the headers define it, this is the only thing without a complex workaround on Windows that will do what we need.

See:

https://github.com/msys2/msys2/wiki/Porting/f87a222118b1008ebc166ad237f04edb759c8f4c#calling-conventions-stdcall-and-autotools

and

https://lists.gnu.org/archive/html/autoconf/2013-05/msg00085.html

and for a more complex workaround, we'd need to use AC_LINK_IFELSE like:

https://mailman.videolan.org/pipermail/vlc-devel/2015-March/101802.html

which would require we check each individually and provide function arguments for the test. I don't think that is worthwhile.

Fixes Issue: #688
Fix By: Brad House (@bradh352)

- [Brad House brought this change]

Do not sanity check RR Name vs Question (#685)

It appears as though we should never sanity check the RR name vs the question name as some DNS servers may return results for alias records.

Fixes Bug: #683
Fix By: Brad House (@bradh352)

- [Brad House brought this change]

no reason to include sys/random.h all the time (#684)

External integrations don't need sys/random.h in order to compile, remove the dependency. Try to fix building on legacy MacOS versions.

Fixes Issue: #682
Fix By: Brad House (@bradh352)

- [Gregor Jasny brought this change]

cmake: improve some include related code (#680)

* cmake: avoid warning about non-existing include dir

In the Debian build logs I noticed the following warning:
cc1: warning: /build/c-ares-1.25.0/test/include: No such file or directory [-Wmissing-include-dirs]

This happened because ${CMAKE_INSTALL_INCLUDEDIR} had been added to
caresinternal. I believe it has been copied from the "real" lib
where it's used in the INSTALL_INTERFACE context. But because
caresinternal is never installed we don't need that include here.

* cmake: drop CARES_TOPLEVEL_DIR variable

The CARES_TOPLEVEL_DIR variable is the same as the automatically
created PROJECT_SOURCE_DIR variable. Let's stick to the official
one. Also because it is already used at places where CARES_TOPLEVEL_DIR
is used as well.

Fix By: Gregor Jasny (@gjasny)

Brad House (5 Jan 2024)
- test: fix outdated license headers

- RELEASE-NOTES -> RELEASE-NOTES.md

- update format slightly

- update release notes format

Version 1.25.0 (2 Jan 2024)

GitHub (2 Jan 2024)
Expand Down Expand Up @@ -6007,71 +6145,3 @@ Yang Tse (30 Jan 2013)
Some HP-UX system headers require TRUE defined to 1 and FALSE to 0.

- ares_timeout.c: fix compiler warning

- ares_create_query.c: IRIX compilation fix

- c-ares/nameser.h: add some T_* defines for ns_t_* values

Daniel Stenberg (7 Nov 2012)
- Revert "ares_parse_aaaa_reply: fix memory leak"

This reverts commit 50f25d8a4b2d16f4c5e0ef620238688b7a315c7a.

- ares_parse_aaaa_reply: fix memory leak

an allocated buffer was not freed in the successful case.

- [Gisle Vanem brought this change]

adig: perror() doesn't work for socket errors on windows

... so print the SOCKERRNO instead

- get_DNS_AdaptersAddresses: fix IPv6 parsing

Use of the wrong define made the function not parse IPv6 addresses
properly.

Bug: http://c-ares.haxx.se/mail/c-ares-archive-2012-06/0028.shtml
Reported by: Saúl Ibarra Corretgé

- version: bumped to 1.10.0

Due to the newly added function: ares_create_query()

- AUTHORS: synced with 83093ac450

Added 21 authors since this document was last updated

- ares_create_query.3: mention when this is added

- [hpopescu@ixiacom.com brought this change]

Added new feature (rfc2671)

- code police: fix indents, < 80 columns, reflowed comments

Guenter Knauf (11 Jul 2012)
- Cleaned up version awk script.

Daniel Stenberg (30 Jun 2012)
- [Gisle Vanem brought this change]

read_udp_packets: bail out loop on bad sockets

I can see that recvfrom() in ares_process.c many times is called with
'udp_socket' == ARES_SOCKET_BAD. The code takes care not to call
recv/recvfrom with ARES_SOCKET_BAD in the outer-loop. So should the
inner-loop.

Yang Tse (29 Jun 2012)
- cares-compilers.m4: remove -Wstrict-aliasing=3 from clang

Currently it is unknown if there is any version of clang that
actually supports -Wstrict-aliasing. What is known is that there
are several that don't support it.

- cares-compilers.m4: -Wstrict-aliasing=3 for warning enabled gcc and clang builds

Daniel Stenberg (18 Jun 2012)
- version: work towards 1.9.2 (at least)
33 changes: 23 additions & 10 deletions deps/cares/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ INCLUDE (CheckCSourceCompiles)
INCLUDE (CheckStructHasMember)
INCLUDE (CheckLibraryExists)

PROJECT (c-ares LANGUAGES C VERSION "1.25.0" )
PROJECT (c-ares LANGUAGES C VERSION "1.26.0" )

# Set this version before release
SET (CARES_VERSION "1.25.0")
SET (CARES_VERSION "1.26.0")

INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are wrong.

Expand All @@ -30,7 +30,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w
# For example, a version of 4:0:2 would generate output such as:
# libname.so -> libname.so.2
# libname.so.2 -> libname.so.2.2.0
SET (CARES_LIB_VERSIONINFO "12:1:10")
SET (CARES_LIB_VERSIONINFO "13:0:11")


OPTION (CARES_STATIC "Build as a static library" OFF)
Expand Down Expand Up @@ -186,6 +186,7 @@ CARES_FUNCTION_IN_LIBRARY (clock_gettime rt HAVE_LIBRT)


# Look for necessary includes
CHECK_INCLUDE_FILES (AvailabilityMacros.h HAVE_AVAILABILITYMACROS_H)
CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILES (sys/random.h HAVE_SYS_RANDOM_H)
CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H)
Expand Down Expand Up @@ -223,8 +224,11 @@ 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 (sys/event.h HAVE_SYS_EVENT_H)
CHECK_INCLUDE_FILES (sys/epoll.h HAVE_SYS_EPOLL_H)
CHECK_INCLUDE_FILES (ifaddrs.h HAVE_IFADDRS_H)
CHECK_INCLUDE_FILES (time.h HAVE_TIME_H)
CHECK_INCLUDE_FILES (poll.h HAVE_POLL_H)
CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
# On OpenBSD, you must include sys/types.h before netinet/tcp.h
Expand All @@ -242,8 +246,14 @@ CHECK_INCLUDE_FILES ("winsock2.h;windows.h" HAVE_WINSOCK2_H)
CHECK_INCLUDE_FILES ("winsock2.h;ws2tcpip.h;windows.h" HAVE_WS2TCPIP_H)
CHECK_INCLUDE_FILES ("winsock2.h;iphlpapi.h;windows.h" HAVE_IPHLPAPI_H)
CHECK_INCLUDE_FILES ("winsock2.h;netioapi.h;windows.h" HAVE_NETIOAPI_H)
CHECK_INCLUDE_FILES ("winsock2.h;mswsock.h;windows.h" HAVE_MSWSOCK_H)
CHECK_INCLUDE_FILES ("winsock.h;windows.h" HAVE_WINSOCK_H)
CHECK_INCLUDE_FILES (windows.h HAVE_WINDOWS_H)
CHECK_INCLUDE_FILES ("windows.h;winternl.h" HAVE_WINTERNL_H)
CHECK_INCLUDE_FILES ("windows.h;ntdef.h" HAVE_NTDEF_H)
CHECK_INCLUDE_FILES ("windows.h;ntdef.h;ntstatus.h" HAVE_NTSTATUS_H)


ENDIF ()

# Set system-specific compiler flags
Expand Down Expand Up @@ -300,6 +310,7 @@ MACRO (CARES_EXTRAINCLUDE_IFSET var include)
ENDIF ()
ENDMACRO ()

CARES_EXTRAINCLUDE_IFSET (HAVE_AVAILABILITYMACROS_H AvailabilityMacros.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_STDBOOL_H stdbool.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_TYPES_H sys/types.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_ARPA_INET_H arpa/inet.h)
Expand All @@ -322,7 +333,10 @@ 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_SYS_EVENT_H sys/event.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_EPOLL_H sys/epoll.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_TIME_H time.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_POLL_H poll.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_FCNTL_H fcntl.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_UNISTD_H unistd.h)
CARES_EXTRAINCLUDE_IFSET (HAVE_WINSOCK2_H winsock2.h)
Expand Down Expand Up @@ -429,6 +443,12 @@ CHECK_SYMBOL_EXISTS (writev "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_WRITEV)
CHECK_SYMBOL_EXISTS (arc4random_buf "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_ARC4RANDOM_BUF)
CHECK_SYMBOL_EXISTS (stat "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STAT)
CHECK_SYMBOL_EXISTS (getifaddrs "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETIFADDRS)
CHECK_SYMBOL_EXISTS (poll "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_POLL)
CHECK_SYMBOL_EXISTS (pipe "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_PIPE)
CHECK_SYMBOL_EXISTS (pipe2 "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_PIPE2)
CHECK_SYMBOL_EXISTS (kqueue "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_KQUEUE)
CHECK_SYMBOL_EXISTS (epoll_create1 "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_EPOLL)


# On Android, the system headers may define __system_property_get(), but excluded
# from libc. We need to perform a link test instead of a header/symbol test.
Expand Down Expand Up @@ -633,9 +653,6 @@ ENDIF ()
IF (HAVE_SYS_TYPES_H)
SET (CARES_HAVE_SYS_TYPES_H 1)
ENDIF ()
IF (HAVE_SYS_RANDOM_H)
SET (CARES_HAVE_SYS_RANDOM_H 1)
ENDIF()
IF (HAVE_SYS_SOCKET_H)
SET (CARES_HAVE_SYS_SOCKET_H 1)
ENDIF()
Expand All @@ -655,10 +672,6 @@ IF (HAVE_ARPA_NAMESER_COMPAT_H)
SET (CARES_HAVE_ARPA_NAMESER_COMPAT_H 1)
ENDIF()

# Record toplevel CMakeLists.txt path
set(CARES_TOPLEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR}")


# TRANSFORM_MAKEFILE_INC
#
# This function consumes the "Makefile.inc" autotools file, and converts it into
Expand Down
2 changes: 1 addition & 1 deletion deps/cares/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ MSVCFILES = msvc_ver.inc buildconf.bat

# adig and ahost are just sample programs and thus not mentioned with the
# regular sources and headers
EXTRA_DIST = AUTHORS CHANGES README.cares $(man_MANS) RELEASE-NOTES \
EXTRA_DIST = AUTHORS CHANGES README.cares $(man_MANS) RELEASE-NOTES.md \
c-ares-config.cmake.in libcares.pc.cmake libcares.pc.in buildconf get_ver.awk \
maketgz TODO README.msvc $(MSVCFILES) INSTALL.md README.md LICENSE.md \
CMakeLists.txt Makefile.dj Makefile.m32 Makefile.netware Makefile.msvc \
Expand Down
4 changes: 3 additions & 1 deletion deps/cares/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,8 @@ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_CFLAGS = @AM_CFLAGS@
AM_CPPFLAGS = @AM_CPPFLAGS@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AS = @AS@
Expand Down Expand Up @@ -438,7 +440,7 @@ MSVCFILES = msvc_ver.inc buildconf.bat

# adig and ahost are just sample programs and thus not mentioned with the
# regular sources and headers
EXTRA_DIST = AUTHORS CHANGES README.cares $(man_MANS) RELEASE-NOTES \
EXTRA_DIST = AUTHORS CHANGES README.cares $(man_MANS) RELEASE-NOTES.md \
c-ares-config.cmake.in libcares.pc.cmake libcares.pc.in buildconf get_ver.awk \
maketgz TODO README.msvc $(MSVCFILES) INSTALL.md README.md LICENSE.md \
CMakeLists.txt Makefile.dj Makefile.m32 Makefile.netware Makefile.msvc \
Expand Down
Loading

0 comments on commit c688680

Please sign in to comment.