Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 5eea419

Browse filesBrowse files
nodejs-github-botmarco-ippolito
authored andcommitted
deps: update c-ares to v1.32.2
PR-URL: #53865 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent a9c04ea commit 5eea419
Copy full SHA for 5eea419

17 files changed

+757-281Lines changed: 757 additions & 281 deletions
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎deps/cares/CMakeLists.txt‎

Copy file name to clipboardExpand all lines: deps/cares/CMakeLists.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ INCLUDE (CheckCSourceCompiles)
1212
INCLUDE (CheckStructHasMember)
1313
INCLUDE (CheckLibraryExists)
1414

15-
PROJECT (c-ares LANGUAGES C VERSION "1.32.1" )
15+
PROJECT (c-ares LANGUAGES C VERSION "1.32.2" )
1616

1717
# Set this version before release
1818
SET (CARES_VERSION "${PROJECT_VERSION}")
@@ -30,7 +30,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w
3030
# For example, a version of 4:0:2 would generate output such as:
3131
# libname.so -> libname.so.2
3232
# libname.so.2 -> libname.so.2.2.0
33-
SET (CARES_LIB_VERSIONINFO "19:1:17")
33+
SET (CARES_LIB_VERSIONINFO "19:2:17")
3434

3535

3636
OPTION (CARES_STATIC "Build as a static library" OFF)
Collapse file

‎deps/cares/RELEASE-NOTES.md‎

Copy file name to clipboardExpand all lines: deps/cares/RELEASE-NOTES.md
+24Lines changed: 24 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
## c-ares version 1.32.2 - July 15 2024
2+
3+
This is a bugfix release.
4+
5+
Bugfixes:
6+
7+
* Windows: rework EventThread AFD code for better stability.
8+
[PR #811](https://github.com/c-ares/c-ares/pull/811)
9+
* Windows: If an IP address was detected to have changed, it could lead to a
10+
crash due to a bad pointer. Regression introduced in 1.31.0.
11+
[59e3a1f4](https://github.com/c-ares/c-ares/commit/59e3a1f4)
12+
* Windows: use `QueryPerformanceCounters()` instead of `GetTickCount64()` for
13+
better time accuracy (~15ms -> ~1us).
14+
* Windows 32bit config change callback needs to be tagged as `stdcall` otherwise
15+
could result in a crash.
16+
[5c2bab35](https://github.com/c-ares/c-ares/commit/5c2bab35)
17+
* Tests that need accurate timing should not depend on internal symbols as there
18+
are C++ equivalents in `std::chrono`.
19+
[PR #809](https://github.com/c-ares/c-ares/pull/809)
20+
* Kqueue (MacOS, \*BSD): If the open socket count exceeded 8 (unlikely), it
21+
would try to allocate a new buffer that was too small.
22+
[5aad7981](https://github.com/c-ares/c-ares/commit/5aad7981)
23+
24+
125
## c-ares version 1.32.1 - July 7 2024
226

327
This is a bugfix release.
Collapse file

‎deps/cares/aminclude_static.am‎

Copy file name to clipboardExpand all lines: deps/cares/aminclude_static.am
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
# aminclude_static.am generated automatically by Autoconf
3-
# from AX_AM_MACROS_STATIC on Sun Jul 7 10:45:53 EDT 2024
3+
# from AX_AM_MACROS_STATIC on Mon Jul 15 09:00:09 EDT 2024
44

55

66
# Code coverage
Collapse file

‎deps/cares/configure‎

Copy file name to clipboardExpand all lines: deps/cares/configure
+11-11Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.72 for c-ares 1.32.1.
3+
# Generated by GNU Autoconf 2.72 for c-ares 1.32.2.
44
#
55
# Report bugs to <c-ares mailing list: http://lists.haxx.se/listinfo/c-ares>.
66
#
@@ -614,8 +614,8 @@ MAKEFLAGS=
614614
# Identity of this package.
615615
PACKAGE_NAME='c-ares'
616616
PACKAGE_TARNAME='c-ares'
617-
PACKAGE_VERSION='1.32.1'
618-
PACKAGE_STRING='c-ares 1.32.1'
617+
PACKAGE_VERSION='1.32.2'
618+
PACKAGE_STRING='c-ares 1.32.2'
619619
PACKAGE_BUGREPORT='c-ares mailing list: http://lists.haxx.se/listinfo/c-ares'
620620
PACKAGE_URL=''
621621

@@ -1415,7 +1415,7 @@ if test "$ac_init_help" = "long"; then
14151415
# Omit some internal or obsolete options to make the list less imposing.
14161416
# This message is too long to be a string in the A/UX 3.1 sh.
14171417
cat <<_ACEOF
1418-
'configure' configures c-ares 1.32.1 to adapt to many kinds of systems.
1418+
'configure' configures c-ares 1.32.2 to adapt to many kinds of systems.
14191419

14201420
Usage: $0 [OPTION]... [VAR=VALUE]...
14211421

@@ -1486,7 +1486,7 @@ fi
14861486

14871487
if test -n "$ac_init_help"; then
14881488
case $ac_init_help in
1489-
short | recursive ) echo "Configuration of c-ares 1.32.1:";;
1489+
short | recursive ) echo "Configuration of c-ares 1.32.2:";;
14901490
esac
14911491
cat <<\_ACEOF
14921492

@@ -1623,7 +1623,7 @@ fi
16231623
test -n "$ac_init_help" && exit $ac_status
16241624
if $ac_init_version; then
16251625
cat <<\_ACEOF
1626-
c-ares configure 1.32.1
1626+
c-ares configure 1.32.2
16271627
generated by GNU Autoconf 2.72
16281628

16291629
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2267,7 +2267,7 @@ cat >config.log <<_ACEOF
22672267
This file contains any messages produced by compilers while
22682268
running configure, to aid debugging if configure makes a mistake.
22692269

2270-
It was created by c-ares $as_me 1.32.1, which was
2270+
It was created by c-ares $as_me 1.32.2, which was
22712271
generated by GNU Autoconf 2.72. Invocation command line was
22722272

22732273
$ $0$ac_configure_args_raw
@@ -3259,7 +3259,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
32593259

32603260

32613261

3262-
CARES_VERSION_INFO="19:1:17"
3262+
CARES_VERSION_INFO="19:2:17"
32633263

32643264

32653265

@@ -5999,7 +5999,7 @@ fi
59995999

60006000
# Define the identity of the package.
60016001
PACKAGE='c-ares'
6002-
VERSION='1.32.1'
6002+
VERSION='1.32.2'
60036003

60046004

60056005
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -26339,7 +26339,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2633926339
# report actual input values of CONFIG_FILES etc. instead of their
2634026340
# values after options handling.
2634126341
ac_log="
26342-
This file was extended by c-ares $as_me 1.32.1, which was
26342+
This file was extended by c-ares $as_me 1.32.2, which was
2634326343
generated by GNU Autoconf 2.72. Invocation command line was
2634426344

2634526345
CONFIG_FILES = $CONFIG_FILES
@@ -26407,7 +26407,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
2640726407
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2640826408
ac_cs_config='$ac_cs_config_escaped'
2640926409
ac_cs_version="\\
26410-
c-ares config.status 1.32.1
26410+
c-ares config.status 1.32.2
2641126411
configured by $0, generated by GNU Autoconf 2.72,
2641226412
with options \\"\$ac_cs_config\\"
2641326413

Collapse file

‎deps/cares/configure.ac‎

Copy file name to clipboardExpand all lines: deps/cares/configure.ac
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ dnl Copyright (C) The c-ares project and its contributors
22
dnl SPDX-License-Identifier: MIT
33
AC_PREREQ([2.69])
44

5-
AC_INIT([c-ares], [1.32.1],
5+
AC_INIT([c-ares], [1.32.2],
66
[c-ares mailing list: http://lists.haxx.se/listinfo/c-ares])
77

8-
CARES_VERSION_INFO="19:1:17"
8+
CARES_VERSION_INFO="19:2:17"
99
dnl This flag accepts an argument of the form current[:revision[:age]]. So,
1010
dnl passing -version-info 3:12:1 sets current to 3, revision to 12, and age to
1111
dnl 1.
Collapse file

‎deps/cares/include/ares_version.h‎

Copy file name to clipboardExpand all lines: deps/cares/include/ares_version.h
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232

3333
#define ARES_VERSION_MAJOR 1
3434
#define ARES_VERSION_MINOR 32
35-
#define ARES_VERSION_PATCH 1
35+
#define ARES_VERSION_PATCH 2
3636
#define ARES_VERSION \
3737
((ARES_VERSION_MAJOR << 16) | (ARES_VERSION_MINOR << 8) | \
3838
(ARES_VERSION_PATCH))
39-
#define ARES_VERSION_STR "1.32.1"
39+
#define ARES_VERSION_STR "1.32.2"
4040

4141
#define CARES_HAVE_ARES_LIBRARY_INIT 1
4242
#define CARES_HAVE_ARES_LIBRARY_CLEANUP 1
Collapse file

‎deps/cares/src/lib/Makefile.in‎

Copy file name to clipboardExpand all lines: deps/cares/src/lib/Makefile.in
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@SET_MAKE@
1616

1717
# aminclude_static.am generated automatically by Autoconf
18-
# from AX_AM_MACROS_STATIC on Sun Jul 7 10:45:53 EDT 2024
18+
# from AX_AM_MACROS_STATIC on Mon Jul 15 09:00:09 EDT 2024
1919

2020
# Copyright (C) The c-ares project and its contributors
2121
# SPDX-License-Identifier: MIT
Collapse file

‎deps/cares/src/lib/ares__timeval.c‎

Copy file name to clipboardExpand all lines: deps/cares/src/lib/ares__timeval.c
+17-4Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,24 @@
3030

3131
void ares__tvnow(ares_timeval_t *now)
3232
{
33-
/* GetTickCount64() is available on Windows Vista and higher */
34-
ULONGLONG milliseconds = GetTickCount64();
33+
/* QueryPerformanceCounters() has been around since Windows 2000, though
34+
* significant fixes were made in later versions. Documentation states
35+
* 1 microsecond or better resolution with a rollover not less than 100 years.
36+
* This differs from GetTickCount{64}() which has a resolution between 10 and
37+
* 16 ms. */
38+
LARGE_INTEGER freq;
39+
LARGE_INTEGER current;
3540

36-
now->sec = (ares_int64_t)milliseconds / 1000;
37-
now->usec = (unsigned int)(milliseconds % 1000) * 1000;
41+
/* Not sure how long it takes to get the frequency, I see it recommended to
42+
* cache it */
43+
QueryPerformanceFrequency(&freq);
44+
QueryPerformanceCounter(&current);
45+
46+
now->sec = current.QuadPart / freq.QuadPart;
47+
/* We want to prevent overflows so we get the remainder, then multiply to
48+
* microseconds before dividing */
49+
now->usec = (unsigned int)(((current.QuadPart % freq.QuadPart) * 1000000) /
50+
freq.QuadPart);
3851
}
3952

4053
#elif defined(HAVE_CLOCK_GETTIME_MONOTONIC)
Collapse file

‎deps/cares/src/lib/ares_destroy.c‎

Copy file name to clipboardExpand all lines: deps/cares/src/lib/ares_destroy.c
+15-3Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,17 @@ void ares_destroy(ares_channel_t *channel)
3838
return;
3939
}
4040

41-
/* Disable configuration change monitoring */
41+
/* Mark as being shutdown */
42+
ares__channel_lock(channel);
43+
channel->sys_up = ARES_FALSE;
44+
ares__channel_unlock(channel);
45+
46+
/* Disable configuration change monitoring. We can't hold a lock because
47+
* some cleanup routines, such as on Windows, are synchronous operations.
48+
* What we've observed is a system config change event was triggered right
49+
* at shutdown time and it tries to take the channel lock and the destruction
50+
* waits for that event to complete before it continues so we get a channel
51+
* lock deadlock at shutdown if we hold a lock during this process. */
4252
if (channel->optmask & ARES_OPT_EVENT_THREAD) {
4353
ares_event_thread_t *e = channel->sock_state_cb_data;
4454
if (e && e->configchg) {
@@ -47,14 +57,16 @@ void ares_destroy(ares_channel_t *channel)
4757
}
4858
}
4959

50-
/* Wait for reinit thread to exit if there was one pending */
60+
/* Wait for reinit thread to exit if there was one pending, can't be
61+
* holding a lock as the thread may take locks. */
5162
if (channel->reinit_thread != NULL) {
5263
void *rv;
5364
ares__thread_join(channel->reinit_thread, &rv);
5465
channel->reinit_thread = NULL;
5566
}
5667

57-
/* Lock because callbacks will be triggered */
68+
/* Lock because callbacks will be triggered, and any system-generated
69+
* callbacks need to hold a channel lock. */
5870
ares__channel_lock(channel);
5971

6072
/* Destroy all queries */
Collapse file

‎deps/cares/src/lib/ares_event_configchg.c‎

Copy file name to clipboardExpand all lines: deps/cares/src/lib/ares_event_configchg.c
+6-5Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,10 @@ void ares_event_configchg_destroy(ares_event_configchg_t *configchg)
237237

238238

239239
# ifndef __WATCOMC__
240-
static void ares_event_configchg_ip_cb(PVOID CallerContext,
241-
PMIB_IPINTERFACE_ROW Row,
242-
MIB_NOTIFICATION_TYPE NotificationType)
240+
static void NETIOAPI_API_
241+
ares_event_configchg_ip_cb(PVOID CallerContext,
242+
PMIB_IPINTERFACE_ROW Row,
243+
MIB_NOTIFICATION_TYPE NotificationType)
243244
{
244245
ares_event_configchg_t *configchg = CallerContext;
245246
(void)Row;
@@ -303,8 +304,8 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg,
303304
* that didn't get triggered either.
304305
*/
305306
if (NotifyIpInterfaceChange(
306-
AF_UNSPEC, (PIPINTERFACE_CHANGE_CALLBACK)ares_event_configchg_ip_cb,
307-
*configchg, FALSE, &c->ifchg_hnd) != NO_ERROR) {
307+
AF_UNSPEC, ares_event_configchg_ip_cb,
308+
c, FALSE, &c->ifchg_hnd) != NO_ERROR) {
308309
status = ARES_ESERVFAIL;
309310
goto done;
310311
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.