Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
bf7b94f
tools: refactor checkimports.py
VoltrexKeyva Oct 15, 2023
943047e
deps: V8: cherry-pick 25902244ad1a
joyeecheung Oct 15, 2023
f3a9ea0
stream: call helper function from push and unshift
rluvaton Oct 15, 2023
5df3d5a
tools: update comment in `update-uncidi.sh` and `acorn_version.h`
Oct 15, 2023
ae905a8
test: fix defect path traversal tests
tniessen Oct 16, 2023
1f40ca1
doc: update security release process
mhdawson Oct 12, 2023
47633ab
doc: add loong64 to list of architectures
shipujin Oct 16, 2023
789372a
stream: allow pass stream class to `stream.compose`
himself65 Oct 14, 2023
06b7724
doc: add command to keep major branch sync
RafaelGSS Oct 16, 2023
bac872c
doc: update release-stewards with last sec-release
RafaelGSS Oct 16, 2023
b6021ab
lib: reduce overhead of blob clone
H4ad Oct 17, 2023
a54179f
vm: unify host-defined option generation in vm.compileFunction
joyeecheung Oct 5, 2023
3999362
vm: use internal versions of compileFunction and Script
joyeecheung Oct 11, 2023
dda33c2
vm: reject in importModuleDynamically without --experimental-vm-modules
joyeecheung Oct 5, 2023
571f7ef
deps: patch V8 to 11.8.172.15
targos Oct 17, 2023
514ac86
stream: reduce scope of readable bitmap details
ronag Oct 17, 2023
3729e33
doc: add H4ad to collaborators
H4ad Oct 17, 2023
8c1a46c
doc: fix H4ad collaborator sort
H4ad Oct 17, 2023
82363be
doc: fix typo in dgram docs
missinglink Oct 18, 2023
18862e4
fs: add flush option to appendFile() functions
cjihrig Oct 18, 2023
143ddde
test: set sea snapshot tests as flaky
anonrig Oct 18, 2023
7740bf8
esm: rename error code related to import attributes
aduh95 Oct 18, 2023
c76eb27
esm: improve check for ESM syntax
GeoffreyBooth Oct 18, 2023
8efb75f
test: set `test-runner-watch-mode` as flaky
anonrig Oct 18, 2023
a38d131
test: set test-worker-nearheaplimit-deadlock flaky
StefanStojanovic Oct 18, 2023
610036c
fs: improve error performance of `renameSync`
anonrig Sep 29, 2023
f766c04
fs: improve error performance of `chownSync`
anonrig Sep 29, 2023
81f1527
fs: improve error performance of `linkSync`
anonrig Sep 29, 2023
2759878
fs: improve error performance of `mkdtempSync`
anonrig Sep 29, 2023
bc6f279
fs: improve error performance of `readlinkSync`
anonrig Sep 29, 2023
dc9ac8d
fs: improve error performance of `symlinkSync`
anonrig Sep 29, 2023
6eeaa02
fs: improve error performance of `lchownSync`
anonrig Sep 29, 2023
c5ff000
fs: improve error performance of `realpathSync`
anonrig Oct 1, 2023
dd66fdf
test: set parallel http server test as flaky
anonrig Oct 18, 2023
dacee4d
doc: add ReflectConstruct to known perf issues
H4ad Oct 18, 2023
3e38001
test: skip test-benchmark-os.js on IBM i
abmusse Oct 17, 2023
ce27ee7
tls: reduce TLS 'close' event listener warnings
pimterry Oct 18, 2023
c874490
test: set inspector async hook test as flaky
anonrig Oct 18, 2023
7c6e4d7
test: set `test-esm-loader-resolve-type` as flaky
anonrig Oct 19, 2023
ce9d84e
doc: update api `stream.compose`
himself65 Oct 19, 2023
0c710da
test: improve code coverage of diagnostics_channel
MrJithil Oct 19, 2023
317e447
test: deflake `test-loaders-workers-spawned`
aduh95 Oct 18, 2023
9cd68b9
buffer: remove unnecessary assignment in fromString
tniessen Oct 19, 2023
9bc5ab5
test: set `test-structuredclone-*` as flaky
anonrig Oct 19, 2023
be19d9b
meta: move Trott to TSC regular member
Trott Oct 19, 2023
5129bed
test: set crypto-timing test as flaky
anonrig Oct 20, 2023
2473aa3
doc: fix release process table of contents
richardlau Oct 20, 2023
c55f8f3
test: reduce the number of requests and parsers
lpinca Oct 20, 2023
3f8cbb1
http2: allow streams to complete gracefully after goaway
murgatroid99 Oct 20, 2023
21a6ba5
test: set `test-cli-node-options` as flaky
anonrig Oct 19, 2023
6507f66
test: set test-worker-nearheaplimit-deadlock flaky
StefanStojanovic Oct 19, 2023
57adbdd
test: set inspector async stack test as flaky
anonrig Oct 18, 2023
3b80a68
test: set `test-emit-after-on-destroyed` as flaky
anonrig Oct 20, 2023
e375063
esm: detect ESM syntax in ambiguous JavaScript
GeoffreyBooth Oct 20, 2023
a362c27
crypto: ensure valid point on elliptic curve in SubtleCrypto.importKey
panva Oct 20, 2023
5a52c51
lib: add `navigator.userAgent`
anonrig Oct 20, 2023
465ad2a
test: update `url` web platform tests
anonrig Oct 20, 2023
6ec5aba
fs: improve error performance for `mkdirSync`
CanadaHonk Oct 20, 2023
5942edb
fs: improve error performance for `fsyncSync`
Oct 20, 2023
ba258b6
deps: update c-ares to 1.20.0
nodejs-github-bot Oct 8, 2023
f050668
deps: update c-ares to 1.20.1
nodejs-github-bot Oct 11, 2023
0cc176e
fs: improve error performance for `readSync`
Oct 21, 2023
5dc454a
util: remove internal mime fns from benchmarks
Uzlopak Oct 21, 2023
af31d51
test: replace forEach with for..of in test-http2-client-destroy.js
niyashiyas Oct 21, 2023
2d8d6c5
test: replace forEach with for..of in test-http2-server
niyashiyas Sep 23, 2023
19d3ce2
test: deflake `test-esm-loader-resolve-type`
aduh95 Oct 21, 2023
67c599e
test: replace forEach with for..of in test-net-isipv4.js
niyashiyas Oct 21, 2023
4d390e2
test: replace forEach with for..of in test-http-perf_hooks.js
niyashiyas Sep 23, 2023
ab4bae8
tools: drop support for osx notarization with gon
UlisesGascon Oct 21, 2023
7f87084
Revert "test: set `test-esm-loader-resolve-type` as flaky"
aduh95 Oct 21, 2023
1c21a18
doc: update release process LTS step
richardlau Oct 21, 2023
c40de82
doc: add loong64 info into platform list
shipujin Oct 22, 2023
0005317
deps: update undici to 5.26.4
nodejs-github-bot Oct 22, 2023
531a3ae
stream: simplify prefinish
ronag Oct 22, 2023
63b7059
test: set `test-watch-mode-inspect` as flaky
anonrig Oct 22, 2023
1464eba
lib: improve performance of validateStringArray and validateBooleanArray
Uzlopak Oct 22, 2023
87be790
worker: handle detached `MessagePort` from a different context
juanarbol Oct 22, 2023
6e537ae
doc: explain how to disable navigator
GeoffreyBooth Oct 22, 2023
03a31ce
deps: update corepack to 0.22.0
nodejs-github-bot Oct 24, 2023
91e373f
node-api: return napi_exception_pending on proxy handlers
legendecas Jun 15, 2023
a9ca7b3
test: improve watch mode test
MoLow Oct 23, 2023
8f7eb15
vm: use import attributes instead of import assertions
aduh95 Oct 23, 2023
db2a1cf
doc: fix `navigator.hardwareConcurrency` example
tniessen Oct 23, 2023
269e268
deps: update ada to 2.7.2
nodejs-github-bot Oct 23, 2023
998feda
esm: do not give wrong hints when detecting file format
aduh95 Oct 23, 2023
f4da308
deps: V8: cherry-pick f7d000a7ae7b
lukealbao Oct 23, 2023
f4e5beb
2023-10-24, Version 21.1.0 (Current)
targos Oct 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
deps: update c-ares to 1.20.0
Co-authored-by: Richard Lau <rlau@redhat.com>
PR-URL: #50082
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
  • Loading branch information
2 people authored and targos committed Oct 23, 2023
commit ba258b682b7be7269d9e398b5b76a134141202f3
31 changes: 21 additions & 10 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,30 @@ The externally maintained libraries used by Node.js are:

- c-ares, located at deps/cares, is licensed as follows:
"""
Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS
MIT License

Copyright (c) 1998 Massachusetts Institute of Technology
Copyright (c) 2007 - 2023 Daniel Stenberg with many contributors, see AUTHORS
file.

Copyright 1998 by the Massachusetts Institute of Technology.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice (including the next
paragraph) shall be included in all copies or substantial portions of the
Software.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting documentation, and that
the name of M.I.T. not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission.
M.I.T. makes no representations about the suitability of this software for any
purpose. It is provided "as is" without express or implied warranty.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""

- cjs-module-lexer, located at deps/cjs-module-lexer, is licensed as follows:
Expand Down
292 changes: 217 additions & 75 deletions deps/cares/CHANGES
Original file line number Diff line number Diff line change
@@ -1,5 +1,222 @@
Changelog for the c-ares project. Generated with git2changes.pl

Version 1.20.0 (6 Oct 2023)

Brad House (6 Oct 2023)
- fix slist search off by 1

GitHub (6 Oct 2023)
- [Brad House brought this change]

1.20.0 release prep (#557)

- [Brad House brought this change]

ares__buf should return standard error codes. more helpers implemented. (#558)

The purpose of this PR is to hopefully make the private API of this set of routines less likely to need to be changed in a future release. While this is not a public API, it could become harder in the future to change usage as it becomes more widely used within c-ares.

Fix By: Brad House (@bradh352)

- [Brad House brought this change]

Update from 1989 MIT license text to modern MIT license text (#556)

ares (and thus c-ares) was originally licensed under the 1989 MIT license text:
https://fedoraproject.org/wiki/Licensing:MIT#Old_Style_(no_advertising_without_permission)

This change updates the license to the modern MIT license as recognized here:
https://opensource.org/license/mit/

care has been taken to ensure correct attributions remain for the authors contained within the copyright headers, and all authors with attributions in the headers have been contacted for approval regarding the change. Any authors which were not able to be contacted, the original copyright maintains, luckily that exists in only a single file `ares_parse_caa_reply.c` at this time.

Please see PR #556 for the documented approvals by each contributor.

Fix By: Brad House (@bradh352)

- [Brad House brought this change]

Test Harness: use ares_timeout() to calculate the value to pass to select() these days. (#555)

The test framework was using 100ms timeout passed to select(), and not using ares_timeout() to calculate the actual recommended value based on the queries in queue. Using ares_timeout() tests the functionality of ares_timeout() itself and will provide more responsive results.

Fix By: Brad House (@bradh352)

- [Brad House brought this change]

Fix for TCP back to back queries (#552)

As per #266, TCP queries are basically broken. If we get a partial reply, things just don't work, but unlike UDP, TCP may get fragmented and we need to properly handle that.

I've started creating a basic parser/buffer framework for c-ares for memory safety reasons, but it also helps for things like this where we shouldn't be manually tracking positions and fetching only a couple of bytes at a time from a socket. This parser/buffer will be expanded and used more in the future.

This also resolves #206 by allowing NULL to be specified for some socket callbacks so they will auto-route to the built-in c-ares functions.

Fixes: #206, #266
Fix By: Brad House (@bradh352)

- [Brad House brought this change]

remove acountry from built tools as nerd.dk is gone (#554)

The acountry utility required a third party DNSBL service from nerd.dk in order to operate. That service has been offline for about a year and there is no other comparable service offering. We are keeping the code in the repository as an example, but no longer building it.

Fixes: #537
Fix By: Brad House (@bradh352)

- [Brad House brought this change]

Don't requeue any queries for getaddrinfo() during destruction. (#553)

During ares_destroy(), any outstanding queries are terminated, however ares_getaddrinfo() had an ordering issue with status codes which in some circumstances could lead to a new query being enqueued rather than honoring the termination.

Fixes #532
Fix By: @Chilledheart and Brad House (@bradh352)

- [Brad House brought this change]

ares_getaddrinfo(): Fail faster on AF_UNSPEC if we've already received one address class (#551)

As per #541, when using AF_UNSPEC with ares_getaddrinfo() (and in turn with ares_gethostbynam()) if we receive a successful response for one address class, we should not allow the other address class to continue on with retries, just return the address class we have.

This will limit the overall query time to whatever timeout remains for the pending query for the other address class, it will not, however, terminate the other query as it may still prove to be successful (possibly coming in less than a millisecond later) and we'd want that result still. It just turns off additional error processing to get the result back quicker.

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

- [Sam Morris brought this change]

Avoid producing an ill-formed result when qualifying a name with the root domain (#546)

This prevents the result of qualifying "name" with "." being "name.." which is ill-formed.

Fixes Bug: #545
Fix By: Sam Morris (@yrro)

- [Brad House brought this change]

Configuration option to limit number of UDP queries per ephemeral port (#549)

Add a new ARES_OPT_UDP_MAX_QUERIES option with udp_max_queries parameter that can be passed to ares_init_options(). This value defaults to 0 (unlimited) to maintain existing compatibility, any positive number will cause new UDP ephemeral ports to be created once the threshold is reached, we'll call these 'connections' even though its technically wrong for UDP.

Implementation Details:
* Each server entry in a channel now has a linked-list of connections/ports for udp and tcp. The first connection in the list is the one most likely to be eligible to accept new queries.
* Queries are now tracked by connection rather than by server.
* Every time a query is detached from a connection, the connection that it was attached to will be checked to see if it needs to be cleaned up.
* Insertion, lookup, and searching for connections has been implemented as O(1) complexity so the number of connections will not impact performance.
* Remove is_broken from the server, it appears it would be set and immediately unset, so must have been invalidated via a prior patch. A future patch should probably track consecutive server errors and de-prioritize such servers. The code right now will always try servers in the order of configuration, so a bad server in the list will always be tried and may rely on timeout logic to try the next.
* Various other cleanups to remove code duplication and for clarification.

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

- [Brad House brought this change]

its not 1991 anymore, lower default timeout and retry count (#542)

A lot of time has passed since the original timeouts and retry counts were chosen. We have on and off issues reported due to this. Even on geostationary satellite links, latency is worst case around 1.5s. This PR changes the per-server timeout to 2s and the retry count lowered from 4 to 3.

Fix By: Brad House (@bradh352)

- [Brad House brought this change]

Modernization: Implement base data-structures and replace usage (#540)

c-ares currently lacks modern data structures that can make coding easier and more efficient. This PR implements a new linked list, skip list (sorted linked list), and hashtable implementation that are easy to use and hard to misuse. Though these implementations use more memory allocations than the prior implementation, the ability to more rapidly iterate on the codebase is a bigger win than any marginal performance difference (which is unlikely to be visible, modern systems are much more powerful than when c-ares was initially created).

The data structure implementation favors readability and audit-ability over performance, however using the algorithmically correct data type for the purpose should offset any perceived losses.

The primary motivation for this PR is to facilitate future implementation for Issues #444, #135, #458, and possibly #301

A couple additional notes:

The ares_timeout() function is now O(1) complexity instead of O(n) due to the use of a skiplist.
Some obscure bugs were uncovered which were actually being incorrectly validated in the test cases. These have been addressed in this PR but are not explicitly discussed.
Fixed some dead code warnings in ares_rand for systems that don't need rc4

Fix By: Brad House (@bradh352)

- [Jérôme Duval brought this change]

fix missing prefix for CMake generated libcares.pc (#530)

'pkg-config grpc --cflags' complains with:
Variable 'prefix' not defined in libcares.pc

Fix By: Jérôme Duval (@korli)

bradh352 (11 Jul 2023)
- windows get_DNS_Windows port fix for ipv6

- windows get_DNS_Windows port is in network byte order

- backoff to debian 11 due to coverage check failure

- extend on PR #534, windows should also honor a port

GitHub (11 Jul 2023)
- [Brad House brought this change]

Support configuration of DNS server ports (#534)

As per https://man.openbsd.org/OpenBSD-5.1/resolv.conf.5 we should
support bracketed syntax for resolv.conf entries to contain an optional
port number.

We also need to utilize this format for configuration of MacOS
DNS servers as seen when using the Viscosity OpenVPN client, where
it starts a private DNS server listening on localhost on a non-standard
port.

Fix By: Brad House (@bradh352)

Daniel Stenberg (9 Jun 2023)
- provide SPDX identifiers and a REUSE CI job to verify

All files have their licence and copyright information clearly
identifiable. If not in the file header, they are set separately in
.reuse/dep5.

All used license texts are provided in LICENSES/

GitHub (30 May 2023)
- [Alexey A Tikhonov brought this change]

Remove unreachable code as reported by Coverity (#527)

Coverity reported some code as unreachable. A manual inspection confirmed the reports.

Fix By: Alexey A Tikhonov (@alexey-tikhonov)

- [Ben Noordhuis brought this change]

rand: add support for getrandom() (#526)

glibc provides arc4random_buf() but musl does not and /dev/urandom is
not always available.

- [Tim Wojtulewicz brought this change]

Replace uses of sprintf with snprintf (#525)

sprintf isn't safe even if you think you are using it right. Switch to snprintf().

Fix By: Tim Wojtulewicz (@timwoj)

bradh352 (23 May 2023)
- update version and release procedure

GitHub (22 May 2023)
- [Douglas R. Reno brought this change]

INSTALL.md: Add Watcom instructions and update Windows documentation URLs (#524)

This commit adds instructions on how to use the WATCOM compiler to build c-ares. This was just tested on c-ares-1.19.1 and works well.

While going through the links for the C Runtime documentation for Windows systems, I discovered that all three of the KB articles that were linked are now nonexistent. This commit replaces KB94248 with the current replacement available on Microsoft's website, which also makes the other two KB articles obsolete.

Fix By: Douglas R. Reno (@renodr)

Version 1.19.1 (22 May 2023)

bradh352 (22 May 2023)
Expand Down Expand Up @@ -5477,78 +5694,3 @@ Daniel Stenberg (11 Jun 2010)
- [BogDan Vatra brought this change]

init: allow c-ares to work on Android OS

- changelog: fill in the 1.7.2 changes

- added another pdf to ignore

Yang Tse (11 Jun 2010)
- add ares_parse_mx_reply.c to VS dsp file

Daniel Stenberg (10 Jun 2010)
- tarball: add $(CSOURCES) $(HHEADERS) to EXTRA_DIST

It's not clear to me why we need this, but we apparently may
otherwise not get all files bundled in the dist tarball.

- version: start working on 1.7.3

Version 1.7.2 (10 Jun 2010)

Daniel Stenberg (10 Jun 2010)
- RELEASE-NOTES: 1.7.2 details added

- [Jakub Hrozek brought this change]

ares_init: Last, not first instance of domain or search should win

- style: make code less than 80 columns wide

Yang Tse (31 May 2010)
- [Tor Arntsen brought this change]

improve alternative definition of bool to use enum instead of unsigned char

- fix VS2010 compiler warnings

Daniel Stenberg (18 Apr 2010)
- [Jérémy Lal brought this change]

added ares_parse_mx_reply

- repair the file mode

- remove all $Id$ lines

- remove all .cvsignore files

- spell fix

reported by Gregor Jasny on the mailing list

- [Peter Pentchev brought this change]

Fix a couple of typos and grammar nits.

- ignore the GPG signature files too

- start the journey towards 1.7.2

- no longer CVS tagging

- ignore generated PDFs

Version 1.7.1 (23 Mar 2010)

Daniel Stenberg (23 Mar 2010)
- 1.7.1

- made README the primary readme file

... and did README.cares to contain a historic reason etc.

- s/CVS/git

- git now, not CVS

- ignore lots of generated files
Loading