Repository navigation
http: consolidate the open fetch, Bun.serve, node:http, node:http2 and HTTP/3 pull requests #46528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Jarred-Sumner
wants to merge
136
commits into
main
Choose a base branch
from
claude/http-consolidated
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+101,540
−66,169
Open
Changes from all commits
Commits
Show all changes
136 commits
Select commit
Hold shift + click to select a range
77dd17c
net, tls: consolidate the open node:net, node:tls, Bun.connect, Bun.l…
Jarred-Sumner a970423
Fix the Windows and macOS test failures, the mordant findings and wha…
Jarred-Sumner 49545fd
http: consolidate the open fetch, Bun.serve, node:http, node:http2 an…
Jarred-Sumner feebbe0
Fix what review and a differential fuzzer found, the Windows test and…
Jarred-Sumner 8758dd7
Fix what review, a differential fuzzer and the first CI run found
Jarred-Sumner 6d5b579
Fix what the second CI run and review found
Jarred-Sumner 01395ab
Fix what review found in the third push, and the two Windows test rows
Jarred-Sumner 9028a27
node:http2: keep a peer's GOAWAY from crashing a client through a pus…
Jarred-Sumner c263d3f
node:http: send the head of a HEAD, 204 or 304 response at end() agai…
Jarred-Sumner 76bc84e
node:http, node:http2: fixes from review of the last push
Jarred-Sumner 826df79
fetch, node:http2: take back the per-request cost the release benchma…
Jarred-Sumner 69453d7
Fix the last three differences the differential fuzzer found, and use…
Jarred-Sumner c2a1d14
fetch: keep FetchTasklet's mutex and atomic flags in one cache line a…
Jarred-Sumner 9337309
Merge branch 'main' into claude/net-tls-consolidated
Jarred-Sumner 67254fe
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 41b5bfa
Refuse a descriptor this process already uses, and move rules to the …
Jarred-Sumner 9b433a0
Read each TLS server option the way Node does, and move rules to the …
Jarred-Sumner 99da494
Read secure context options by name everywhere, fire socket timeouts …
Jarred-Sumner c5b696d
Merge branch 'main', give the TLS handshake deadline its own timer, a…
Jarred-Sumner ae5e404
Fix the lint, clippy and mordant findings, check the descriptor table…
Jarred-Sumner c7053e2
socket: pass the SSL_CTX to the connect instead of keeping it on the …
Jarred-Sumner dace09c
Keep the TLS half's queued tail when the raw half of an upgradeTLS() …
Jarred-Sumner 77b8a1c
Merge branch 'main', and close without an error when a timeout handle…
Jarred-Sumner 387f8cc
Keep an error that a TLS callback caught out of its handshake, and re…
Jarred-Sumner 865db48
tls: let the SSL_CTX cache keep the 16 contexts asked for last, so th…
Jarred-Sumner 0ed6d03
test(tls): wait for a Worker's 'close' event before counting the cont…
Jarred-Sumner 851a8c3
socket: close a paused socket whose queued write failed, and report a…
Jarred-Sumner ebb4da0
Give each HTTP rule one owner: one node:http server per kind of conne…
Jarred-Sumner a3ae79f
[autofix.ci] apply automated fixes
autofix-ci[bot] 525fdb4
Fix the lint, clippy and mordant findings
Jarred-Sumner a919d6b
Fix what the first CI run on the second pass found, and delete more d…
Jarred-Sumner e02ba32
Address review comments, and bring in the net / TLS branch's newest s…
Jarred-Sumner d132a01
node:http: deliver a request body that is read after an await, end a …
Jarred-Sumner 6e8e435
fetch, node:http, Bun.serve: fixes from the final round of verificati…
Jarred-Sumner 5235341
node:http2, node:http, usockets: session.destroy() after close(), unc…
Jarred-Sumner cf707c7
node:http, node:cluster, child_process, fetch: fixes from the final r…
Jarred-Sumner eb8280d
node:http: bind the 'finish' callbacks again instead of closing over …
Jarred-Sumner baf0013
test(node:net, node:http): on Windows a send is never partial, and a …
Jarred-Sumner a021d40
node:http: honor listen({ ipv6Only: true })
Jarred-Sumner 0676659
Merge branch 'main' into claude/http-consolidated, and make a client …
Jarred-Sumner c4f8ce9
node:http2: a server session reads as destroyed from the start of its…
Jarred-Sumner 44e4858
node:stream, HTMLRewriter, node:http, node:http2, node:net: fixes fro…
Jarred-Sumner dee4a75
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner be1b3a2
usockets, node:child_process: fixes from review; run the Bun.stdin.st…
Jarred-Sumner 04af03e
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 126551b
node:http2: fixes from review
Jarred-Sumner 9d5ba06
node:http2: a stream that resumes while the session reads gets its WI…
Jarred-Sumner 0b04aed
process.stdin, node:http2: fixes from review
Jarred-Sumner 2962fb4
test(process.stdin): write to the shell pipe from bun, and drain the …
Jarred-Sumner 5f16929
node:http: server.timeout and server.setTimeout() no longer cut a res…
Jarred-Sumner 4f64e4e
node:quic: trailers get their own HEADERS frame, and reach a stream t…
Jarred-Sumner 10a17e1
node:quic: trailers wait for the peer's flow-control credit, like bod…
Jarred-Sumner bcb2274
node:http, node:net: a socket timeout waits while the peer takes byte…
Jarred-Sumner 02a5482
node:quic: every path that ends a stream's write side drops the heade…
Jarred-Sumner 6f54188
undici: dispatch() refuses a handler without onError, and fetch() wit…
Jarred-Sumner de337e9
node:net, node:http: a socket's handle has Node's writeQueueSize, and…
Jarred-Sumner c6596e6
node:quic: destroy() resets a stream whose header block still waits f…
Jarred-Sumner ec91f3d
node:http: a connection with a held pipelined response is released wh…
Jarred-Sumner 6f66b74
node:http: the socket of an Upgrade request ends when the client leav…
Jarred-Sumner 85750ee
node:http: a keep-alive timeout that finds a write queue still moving…
Jarred-Sumner fcc81bd
node:http: an 'upgrade' listener that lets go of a request whose body…
Jarred-Sumner 9a3d6c2
node:http: req.socket.bytesWritten only grows, over the responses of …
Jarred-Sumner 7242738
node:net: a write after the peer hung up fails with EPIPE also while …
Jarred-Sumner 07bcf8a
node:http: socket.pause() inside a request listener lasts until the r…
Jarred-Sumner caf3fe2
node:http: socket.pause() in a 'connection' listener doesn't hold bac…
Jarred-Sumner 3587c38
TLS: end() and shutdown() deliver what was written, also when end() i…
Jarred-Sumner 5015a36
node:http: a request listener's socket.pause() stays when a front ser…
Jarred-Sumner cd442c7
Bun.serve: a request is released when its client goes away
Jarred-Sumner 451c232
node:https: the listener always gets the server's own TLS context, li…
Jarred-Sumner 9df1656
test(node:net): sockets that start paused leave the event loop idle a…
Jarred-Sumner ebf6455
test(node:net): a client that fails to connect fails the fixture
Jarred-Sumner 15930f6
Bun.serve: of its two read pauses, only the one for parked requests e…
Jarred-Sumner 77fca77
Bun.serve: requests behind a response leave nothing behind when their…
Jarred-Sumner 4358c86
Bun.serve: a WebSocket that starts after the peer's FIN gets that FIN…
Jarred-Sumner 49621f6
Bun.serve: the mark for requests behind a response counts what waits,…
Jarred-Sumner 3fd0627
test(serve): frame the responses by Content-Length
Jarred-Sumner 9cd5284
process.stdin: pause() without a reader of its own leaves the source'…
Jarred-Sumner 91a69e7
process.stdin: pause() stops a source that no reader holds
Jarred-Sumner e76056c
node:quic: a write event that gives lsquic a queued header block ends…
Jarred-Sumner de20f61
process.stdin: pause() and destroy() stop a source that another reade…
Jarred-Sumner dfde9e6
process.stdin: a reader taken in the tick of destroy() keeps the sour…
Jarred-Sumner 86e2d64
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 7f35fb6
process.stdin: a destroy() that goes past the instance's own function…
Jarred-Sumner a9466ca
test(Bun.serve): a server that survives its HTML route's build is rep…
Jarred-Sumner 42ff9ae
test(Bun.serve): say whether a surviving server's cell is in the heap…
Jarred-Sumner 5efd42b
test(Bun.serve): look for a surviving server's address on the native …
Jarred-Sumner c2088e8
test(Bun.serve): ask the heap what holds the server after its HTML ro…
Jarred-Sumner a50d48c
Request: the headers have the type of the in-memory body that an unre…
Jarred-Sumner a145d92
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 393d0b7
node:quic: read each transport parameter once, and give native code w…
Jarred-Sumner 58ecdf6
test(node:quic): return freed pages to the OS before the outbound que…
Jarred-Sumner 14c718c
test(node:quic): close the client before the assertions, so the serve…
Jarred-Sumner c762237
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 2064b74
node:http: compiled servers meet their budgets, 'close' comes in time
Jarred-Sumner 841b431
node:http: requests whose body has ended wait in the internal queue
Jarred-Sumner 1ab1ca5
node:http: a 'data' listener gets the reads after removeAllListeners()
Jarred-Sumner 08f4abd
node:http: take the class below net.Socket out again
Jarred-Sumner b9a4331
node:http: a body and a FIN that wait in a paused socket are no parse…
Jarred-Sumner 3324f24
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner fb9678c
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 66e2bed
test: what keeps a failed stream alive, on macOS too
Jarred-Sumner 8ccb7d6
node:https: https.Server extends tls.Server, as in Node
Jarred-Sumner b02fb3c
tls: a server does not name the default CA list to its clients
Jarred-Sumner c74e15b
fetch: ask for a collection for chunked bodies too, and only where it…
Jarred-Sumner 19b5252
trim: the features list C functions that exist
Jarred-Sumner 8a1b1cd
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 6637934
test: the connect({path}) leak test counts the pages of small blocks
Jarred-Sumner 82bbfbf
aot: the table of built-ins no longer says that new Headers(headers) …
Jarred-Sumner 0566b9e
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner af6abed
node:http: read no Object.getOwnPropertyDescriptors while the module …
Jarred-Sumner f955d74
test: the differential test of the built-ins calls the raw setDefault…
Jarred-Sumner ba1e051
test: the IR test of one name of node:http tells the client by socket…
Jarred-Sumner f85632d
node: add the two new error codes at the end of the list
Jarred-Sumner a7c0aef
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 84b8092
test: request-body-consumers does not depend on when the connection i…
Jarred-Sumner 5e76035
test: the HTTP/2 idle timeout tests wait for the close that is on its…
Jarred-Sumner eaf99a9
test: write the IR text of custom-accessor-reached-computed-key anew
Jarred-Sumner 1cc8279
test: the HTTP/2 idle timeout tests ask the session whether it is sti…
Jarred-Sumner 2833658
node:quic: a server trusts the list of tls.setDefaultCACertificates()…
Jarred-Sumner 2613145
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner cfb7494
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 6837b90
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 27f3bfc
test: what keeps a failed stream alive runs the test's own program
Jarred-Sumner 001958b
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 098d7c6
Merge branch 'main' into claude/http-consolidated
Jarred-Sumner 54e6202
bun-types test: fakeLibraryTimers is not published
Jarred-Sumner 88830da
net: the members of the write request get names of their own
Jarred-Sumner edb9ce8
node-http2-client-close.test.ts: a raw connection starts in a turn of…
Jarred-Sumner 961449c
Merge branch 'main' into claude/http-consolidated
claude 32f5e15
node:http, aot: follow-ups of the merge
claude e7dda37
Merge branch 'main' into claude/http-consolidated
claude f418fc9
Format a second text
claude 808d9e8
[autofix.ci] apply automated fixes
autofix-ci[bot] ee19cba
node:net, node:http, node:dgram: the errors of a failed listen or bin…
claude 44c6245
node:cluster: worker.disconnect() reaches a worker that never loads n…
claude 3f5d7cd
test: say which part of the stand-in test of --isolate fails
claude File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.