[v24.x backport] node:stream/iter and QUIC backports - #64675
Conversation
|
Review requested:
|
935ead8 to
1a1c988
Compare
1a1c988 to
975ed7b
Compare
975ed7b to
2b26bbe
Compare
b28dcf7 to
3c553ff
Compare
3c553ff to
173b666
Compare
7e7fa1a to
182db6c
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v24.x-staging #64675 +/- ##
=================================================
+ Coverage 89.92% 90.23% +0.31%
=================================================
Files 686 710 +24
Lines 208389 226450 +18061
Branches 40077 42776 +2699
=================================================
+ Hits 187387 204341 +16954
- Misses 13238 14100 +862
- Partials 7764 8009 +245 🚀 New features to boost your workflow:
|
c1ef609 to
421ba7e
Compare
Signed-off-by: James M Snell <jasnell@gmail.com> Assisted-by: Opencode/Opus 4.6 PR-URL: nodejs#63483 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: nodejs#63483 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
On the client, add verifyPeer: 'auto', 'strict', and 'manual' modes. The 'strict' mode will reject invalid certs at the handshake layer, while the 'manual' mode allows the application to inspect the peer cert and decide whether to trust it or not. The 'auto' mode is the default and will reject invalid certs at a middle layer after the onhandshake event. Signed-off-by: James M Snell <jasnell@gmail.com> Assisted-by: Opencode/Opus 4.6 PR-URL: nodejs#63483 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Signed-off-by: James M Snell <jasnell@gmail.com> Assisted-by: Opencode/Opus 4.6 PR-URL: nodejs#63483 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Signed-off-by: James M Snell <jasnell@gmail.com> Assisted-by: Opencode:Opus 4.6 PR-URL: nodejs#63483 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: nodejs#63483 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs#63198 Reviewed-By: Ethan Arrowood <ethan@arrowood.dev> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: nodejs#63536 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs#63874 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Implements a callback that is invoked once http/3 settings are received. Background, http/3 settings usually arrive a bit later than connection establishment, and e.g. for webtransport these settings are used to indicate support. So e.g. the examples for quiche from google, wait for the settings to arrive. (This is different to http/2). The implemented callback mechanism allows to wait for the settings to arrive until connection attempts are made. As settings are stored in the generic applications option object, the callback's name refers to the application rather than the settings. Whether this is a good choice is debatable. Fixes: nodejs#63553 Signed-off-by: Marten Richter <marten.richter@freenet.de> PR-URL: nodejs#63558 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tim Perry <pimterry@gmail.com> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs#63950 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ethan Arrowood <ethan@arrowood.dev> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs#63191 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ethan Arrowood <ethan@arrowood.dev> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs#63946 Reviewed-By: Ethan Arrowood <ethan@arrowood.dev> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
If the #handle is undefined and not QuicStream, while kInspect is called `DataViewPrototypeGetByteLength` will throw. Signed-off-by: Marten Richter <marten.richter@freenet.de> PR-URL: nodejs#64170 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day> Reviewed-By: Tim Perry <pimterry@gmail.com>
Signed-off-by: Mohamed Sayed <k@3zrv.com> PR-URL: nodejs#64228 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Document that duck-typed readable inputs must provide off() in addition to read() and on(), matching the cleanup behavior in the implementation. Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> PR-URL: nodejs#63682 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: nodejs#64649 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Aviv Keller <me@aviv.sh>
This notable includes stream/iter (since they're closely related and rapidly evolving together) and ngtcp2, nghttp3 & openssl deps. Based on test-linux.yml, the main differences are simplifications: PRs only, filtered to specific paths, just one build (ARM only), no unusual characters test. Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs#63875 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Signed-off-by: Renegade334 <contact.9a5d6388@renegade334.me.uk> PR-URL: nodejs#64043 Refs: nodejs#63078 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2dd39a0 to
e11cdce
Compare
|
The linker errors seem to suggest that it's nghttp2 (not nghttp3) which is clashing with itself: we build We can either look for a definitive fix... or just remove the disabled test implementation targets from ngtcp2.gyp and the associated sfparse target from nghttp2.gyp for v24.x, given that we are never ever going to be building these for the lifetime of v24.x due to the C++23 requirement. (To that end, does removing d2207f8 fix the linker errors?) |
It's hard to tell, all the changes build on top of it so it's very hard to remove |
|
Worth trying a CI run with b36adcb on top? |
|
Interesting... Not sure if related, but I've noticed that the node.gypi changes from the backported #59946 are overlapping with #61444 (a later PR, but already merged to v24.x) – the latter removed the ngtcp2 targets from the openssl section of node.gypi and moved them elsewhere, the backport is adding them back in, so they're now duplicated. Those test implementations are the only build targets that depend on nghttp2:sfparse... 🤔 Worth trying 04e036a to fixup that commit? |
Backport of:
stream_iter.md#63406stream_iter.md#64649