Commit Graph

5385 Commits

Author SHA1 Message Date
Gabriel Schulhof
cc7ec889e8 n-api: support type-tagging objects
`napi_instanceof()` is insufficient for reliably establishing the data
type to which a pointer stored with `napi_wrap()` or
`napi_create_external()` inside a JavaScript object points. Thus, we
need a way to "mark" an object with a value that, when later retrieved,
can unambiguously tell us whether it is safe to cast the pointer stored
inside it to a certain structure.

Such a check must survive loading/unloading/multiple instances of an
addon, so we use UUIDs chosen *a priori*.

Fixes: https://github.com/nodejs/node/issues/28164
Co-authored-by: Anna Henningsen <github@addaleax.net>
PR-URL: https://github.com/nodejs/node/pull/28237
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Signed-off-by: Gabriel Schulhof <gabriel.schulhof@intel.com>
2020-07-31 18:30:30 -07:00
Michael Dawson
15333ad552 doc: clarify N-API version 1
Refs: https://github.com/nodejs/node-addon-api/issues/760

Clarify which version of 8.x in which N-API version 1
matches the shape in later versions like 10.x

Signed-off-by: Michael Dawson <michael_dawson@ca.ibm.com>

PR-URL: https://github.com/nodejs/node/pull/34344
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com>
2020-07-29 18:24:49 -04:00
iandrc
4cee226eb4 console: document the behavior of console.assert()
Add a description and an example of console.assert() call with
no arguments. If called like this, the method should output:
"Assertion failed".

Fixes: https://github.com/nodejs/node/issues/34500
Refs: https://nodejs.org/dist/latest-v14.x/docs/api/console.html#console_console_assert_value_message
Refs: https://console.spec.whatwg.org/#assert

PR-URL: https://github.com/nodejs/node/pull/34501
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
Reviewed-By: Zeyu Yang <himself65@outlook.com>
2020-07-28 23:40:43 +08:00
James M Snell
1f94b89309 quic: refactor ocsp to use async function rather than event/callback
PR-URL: https://github.com/nodejs/node/pull/34498
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-27 13:33:14 -07:00
Robert Nagy
e8d7fedf7c http: don't write error to socket
The state of the connection is unknown at this point and
writing to it can corrupt client state before it is aware
of an error.

PR-URL: https://github.com/nodejs/node/pull/34465
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-07-25 09:59:41 +02:00
James M Snell
b06fe33de1 quic: use async _construct for QuicStream
PR-URL: https://github.com/nodejs/node/pull/34351
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-23 06:52:59 -07:00
James M Snell
8bd61d4c38 quic: documentation updates
PR-URL: https://github.com/nodejs/node/pull/34351
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-23 06:52:56 -07:00
James M Snell
086c916997 quic: extensive refactoring of QuicStream lifecycle
This one was a bit of a rabbit hole... but, with this set of
changes, `QuicStream` should now work with autoDestroy, supports
a promisified `close()`, and fixes a number of other internal
bugs that were spotted trying to get it to work.

PR-URL: https://github.com/nodejs/node/pull/34351
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-23 06:52:53 -07:00
James M Snell
83bf0d7e8c quic: remove unneeded quicstream.aborted and fixup docs
PR-URL: https://github.com/nodejs/node/pull/34351
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-23 06:52:47 -07:00
Rich Trott
69c78beff6 doc: match link text in index to doc headline
The index ToC says "About these docs" but the document itself says
"About this documentation" which I think is better. Use that.

PR-URL: https://github.com/nodejs/node/pull/34449
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2020-07-23 06:38:30 -07:00
Rich Trott
2c30920886 doc: use sentence-case in quic.md headers
For consistency with the rest of our docs and our style guide, use
sentence-case rather than headline-case in the headers in quic.md.

PR-URL: https://github.com/nodejs/node/pull/34453
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2020-07-22 17:49:09 -07:00
Shelley Vohr
90ee98a7d1
2020-07-22, Version 12.18.3 'Erbium' (LTS)
Notable changes:

deps:
  * upgrade npm to 6.14.6 (claudiahdz) [#34246](https://github.com/nodejs/node/pull/34246)
  * update node-inspect to v2.0.0 (Jan Krems) [#33447](https://github.com/nodejs/node/pull/33447)
  * uvwasi: cherry-pick 9e75217 (Colin Ihrig) [#33521](https://github.com/nodejs/node/pull/33521)

PR-URL: https://github.com/nodejs/node/pull/34343
2020-07-22 09:54:26 -07:00
Anna Henningsen
7603c7e50c worker: set trackUnmanagedFds to true by default
This prevents accidental resource leaks when terminating or exiting
Worker that own FDs opened through `fs.open()`.

Refs: https://github.com/nodejs/node/pull/34303

PR-URL: https://github.com/nodejs/node/pull/34394
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2020-07-22 07:30:32 -07:00
Myles Borins
a981c65b90
2020-07-21, Version 14.6.0 (Current)
Notable changes:

deps:
  * upgrade npm to 6.14.6 (claudiahdz) https://github.com/nodejs/node/pull/34246
  * upgrade to libuv 1.38.1 (Colin Ihrig) https://github.com/nodejs/node/pull/34187
  * (SEMVER-MINOR) update V8 to 8.4.371.19 (Michaël Zasso) [#33579](https://github.com/nodejs/node/pull/33579)
module:
  * (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) https://github.com/nodejs/node/pull/32217
  * (SEMVER-MINOR) package "imports" field (Guy Bedford) https://github.com/nodejs/node/pull/34117
src:
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) https://github.com/nodejs/node/pull/34303
  * (SEMVER-MINOR) allow embedders to disable esm loader (Shelley Vohr) https://github.com/nodejs/node/pull/34060
tls:
  * (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) https://github.com/nodejs/node/pull/33974
vm:
  * (SEMVER-MINOR) add run-after-evaluate microtask mode (Anna Henningsen) https://github.com/nodejs/node/pull/34023
worker:
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) https://github.com/nodejs/node/pull/34303
New Collaborators:
  * add danielleadams to collaborators (Danielle Adams) https://github.com/nodejs/node/pull/34360
  * add sxa as collaborator (Stewart X Addison) https://github.com/nodejs/node/pull/34338
  * add ruyadorno to collaborators (Ruy Adorno) https://github.com/nodejs/node/pull/34297

PR-URL: https://github.com/nodejs/node/pull/34371
2020-07-21 17:45:12 -04:00
Richard Lau
95770df2fb
2020-07-21, Version 10.22.0 'Dubnium' (LTS)
Notable changes:

- deps:
  - upgrade npm to 6.14.6 (claudiahdz)
    https://github.com/nodejs/node/pull/34246
  - upgrade openssl sources to 1.1.1g (Hassaan Pasha)
    https://github.com/nodejs/node/pull/32982
- n-api:
  - add `napi_detach_arraybuffer` (legendecas)
    https://github.com/nodejs/node/pull/29768

PR-URL: https://github.com/nodejs/node/pull/34170
2020-07-21 16:52:47 +01:00
Pekka Nikander
bdf6827edc dgram: add IPv6 scope id suffix to received udp6 dgrams
Add IPv6 link local scope ID suffix to the
rinfo address in those received upd6 datagrams
whose source address is a link local address.

Add a new test case, test-dgram-udp6-link-local-address,
to verify that IPv6 UDP datagrams received from a
link-local source address do contain the scope ID
suffix in the rinfo address field.

When a packet is received from a link-local source
address, if the address does not contain the scope
ID suffix, it is impossible to reply back to the
sender, as the kernel is not able to determine
the right network interface to send the packet
through and returns with an error.

Ref: https://github.com/nodejs/node/issues/1649
PR-URL: https://github.com/nodejs/node/pull/14500

Refs: https://github.com/nodejs/node/issues/1649
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Stewart X Addison <sxa@uk.ibm.com>
2020-07-21 11:59:50 +01:00
Jucke
ca60f5fb44
doc: fix line length in worker_threads.md
PR-URL: https://github.com/nodejs/node/pull/34419
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-20 18:28:03 +02:00
Jucke
0c6ac2deb3
doc: fix typos in n-api, tls and worker_threads
PR-URL: https://github.com/nodejs/node/pull/34419
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-20 18:28:01 +02:00
AshCripps
242bfb6bfc
src: allow setting a dir for all diagnostic output
Add a flag that allows for the setting of a directory where all
diagnostic output will be written to.
e.g. --redirect-warnings

Refs: https://github.com/nodejs/node/pull/33010#issuecomment-618544792

PR-URL: https://github.com/nodejs/node/pull/33584
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-20 18:20:18 +02:00
Rich Trott
a02de1bc35 doc: use correct identifier for callback argument
In one place, the fs docs use `previousStat` for an argument that is
identified as `previous` everywhere else. Use `previous` for
consistency.

PR-URL: https://github.com/nodejs/node/pull/34405
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2020-07-19 07:16:21 -07:00
Tobias Nießen
9cbfabac25
doc: add changes metadata to TLS newSession event
Refs: https://github.com/nodejs/node/issues/33715

PR-URL: https://github.com/nodejs/node/pull/34294
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-07-19 12:26:32 +02:00
Rich Trott
0c81cadec6 doc: strengthen suggestion in errors.md
Sure, I'm advocating for permitting second-person pronouns in a current
PR, but the use in errors.md is superfluous and weakens the sentence.
Remove it.

PR-URL: https://github.com/nodejs/node/pull/34390
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2020-07-18 14:41:24 -07:00
Rich Trott
d46fc91be4 doc: strengthen wording about fs.access() misuse
PR-URL: https://github.com/nodejs/node/pull/34352
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-07-15 22:47:55 -07:00
James M Snell
89453cfc08 quic: fixup quic.md
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:17:08 -07:00
James M Snell
57c1129508 quic: implement QuicSession close as promise
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:17:01 -07:00
James M Snell
8e5c5b16ab quic: cleanup QuicClientSession constructor
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:59 -07:00
James M Snell
fe4e7e4598 quic: use promisified dns lookup
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:57 -07:00
James M Snell
346aeaf874 quic: eliminate "ready"/"not ready" states for QuicSession
QuicClientSession and QuicServerSessions are now always immediately
ready for use when they are created, so no more need to track
ready state.

PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:55 -07:00
James M Snell
6665dda9f6 quic: implement QuicSocket Promise API, part 2
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:52 -07:00
James M Snell
79c0e892dd quic: implement QuicSocket Promise API, part 1
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:50 -07:00
James M Snell
53b12f0c7b quic: implement QuicEndpoint Promise API
This is the start of a conversion over to a fully Promise-centric API
for the QUIC implementation.

PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:48 -07:00
James M Snell
9f552df5b4 quic: fix endpointClose error handling, document
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:41 -07:00
James M Snell
b80108c033 quic: restrict addEndpoint to before QuicSocket bind
Restricting this to pre-bind keeps things simple

PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:39 -07:00
James M Snell
429ab1dce6 quic: minor reduction in code duplication
PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:32 -07:00
James M Snell
aafdc2fcad quic: replace ipv6Only option with 'udp6-only' type
Since the `ipv6Only` option was mutually exclusive with
using `'udp6'`, making it it's own type simplifies things
a bit.

PR-URL: https://github.com/nodejs/node/pull/34283
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-15 17:16:30 -07:00
Ye-hyoung Kang
9fc877890f
doc: fix typo in assert.md
PR-URL: https://github.com/nodejs/node/pull/34316
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2020-07-16 00:26:26 +02:00
Anna Henningsen
e876c0c308
http2: add support for sensitive headers
Add support for “sensitive”/“never-indexed” HTTP2 headers.

Fixes: https://github.com/nodejs/node/issues/34091

PR-URL: https://github.com/nodejs/node/pull/34145
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
2020-07-16 00:25:47 +02:00
Beth Griggs
218381213b
doc: sync deprecation numbers with v14.x
Syncs master and v14.x for DEP0143 - `Transform._transformState`.
Bumps `module.parent` from DEP0143 to DEP0144 on master. Adds
missing DEP number and  metadata for DEP0145: `socket.bufferSize`.

PR-URL: https://github.com/nodejs/node/pull/34368
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2020-07-15 11:37:37 -04:00
Guy Bedford
e212955e8a doc: clarify conditional exports guidance
PR-URL: https://github.com/nodejs/node/pull/34306
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Jan Krems <jan.krems@gmail.com>
2020-07-14 08:04:49 -07:00
Anna Henningsen
a038199265
src,doc,test: remove String::New default parameter
`kNormal` has been the implicit default for a while now (since V8 7.6).

Refs: e0d7f81699

PR-URL: https://github.com/nodejs/node/pull/34248
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-07-14 15:13:34 +02:00
James M Snell
f1dc5cd614
doc: buffer documentation improvements
PR-URL: https://github.com/nodejs/node/pull/34230
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-14 15:11:31 +02:00
Anna Henningsen
725cf4764a
worker: add option to track unmanaged file descriptors
Add a public option for Workers which adds tracking for raw
file descriptors, as currently, those resources are not cleaned
up, unlike e.g. `FileHandle`s.

PR-URL: https://github.com/nodejs/node/pull/34303
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2020-07-14 15:07:20 +02:00
Rich Trott
f902170af6 doc: improve text in fs docs about omitting callbacks
Repair misplaced colon and condense text.

PR-URL: https://github.com/nodejs/node/pull/34307
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2020-07-13 15:35:39 -07:00
Mateusz Krawczuk
2e6c3e2301 tls: make 'createSecureContext' honor more options
Added options: `ticketKeys` and `sessionTimeout`, that are honored by
`createServer`, that calls `createSecureContext`.

This also introduces a minor code simplification.

PR-URL: https://github.com/nodejs/node/pull/33974
Fixes: https://github.com/nodejs/node/issues/20908
Reviewed-By: Alba Mendez <me@alba.sh>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
2020-07-13 10:48:32 +02:00
Rich Trott
ac6ecd6b7f doc: reword warnings about sockets passed to subprocesses
Make the docs more concise. Make warnings direct ("do not use" and
"should") rather than "is not recommended" or "is recommended".

PR-URL: https://github.com/nodejs/node/pull/34273
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2020-07-11 21:03:03 -07:00
James M Snell
48a349efd9 quic: use Number instead of BigInt for more stats
PR-URL: https://github.com/nodejs/node/pull/34262
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-10 13:51:16 -07:00
James M Snell
5e769b2eaf quic: use less specific error codes
Stop the madness. Only you can prevent excessive error code
proliferation.

PR-URL: https://github.com/nodejs/node/pull/34262
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2020-07-10 13:51:13 -07:00
Guy Bedford
1237955d41 module: package "imports" field
PR-URL: https://github.com/nodejs/node/pull/34117
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: Bradley Farias <bradley.meck@gmail.com>
2020-07-09 19:19:35 -07:00
James M Snell
99f0404646 doc: specify encoding in text/html examples
Fixes: https://github.com/nodejs/node/issues/29739

PR-URL: https://github.com/nodejs/node/pull/34222
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2020-07-09 08:49:50 -07:00
James M Snell
f98a441bf7 doc: document the ready event for Http2Stream
Fixes: https://github.com/nodejs/node/issues/22804

PR-URL: https://github.com/nodejs/node/pull/34221
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2020-07-09 07:36:34 -07:00