1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-11 10:07:54 -05:00
Commit graph

54 commits

Author SHA1 Message Date
Yoshiya Hinosawa
2a290317d2
enable [node/http] client closing a streaming request doesn't terminate server 2024-10-17 22:16:31 +09:00
Yoshiya Hinosawa
781eb00dfe
fix race condition of _bodyWriter creation and end() call 2024-10-17 22:12:07 +09:00
Yoshiya Hinosawa
16be0202ca
Merge branch 'main' into support_create_connection
Signed-off-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-10-17 12:00:57 +09:00
Yoshiya Hinosawa
e3235dec66
fix http_test 2024-10-17 11:50:36 +09:00
Nathan Whitaker
458d6278d2
fix(node/http): normalize header names in ServerResponse (#26339)
Fixes https://github.com/denoland/deno/issues/26115.

We weren't normalizing the headers to lower case, so code that attempted
to delete the `Content-Length` header (but used a different case) wasn't
actually removing the header.
2024-10-17 00:42:15 +00:00
Satya Rohith
be6a1baa06
Merge remote-tracking branch 'upstream/main' into support_create_connection 2024-10-17 01:32:10 +05:30
Yoshiya Hinosawa
d59599fc18
fix(ext/node): fix dns.lookup result ordering (#26264)
partially unblocks #25470

This PR aligns the resolution of `localhost` hostname to Node.js
behavior.

In Node.js `dns.lookup("localhost", (_, addr) => console.log(addr))`
prints ipv6 address `::1`, but it prints ipv4 address `127.0.0.1` in
Deno. That difference causes some errors in the work of enabling
`createConnection` option in `http.request` (#25470). This PR fixes the
issue by aligning `dns.lookup` behavior to Node.js.

This PR also changes the following behaviors (resolving TODOs):
- `http.createServer` now listens on ipv6 address `[::]` by default on
linux/mac
- `net.createServer` now listens on ipv6 address `[::]` by default on
linux/mac

These changes are also alignments to Node.js behaviors.
2024-10-16 20:58:44 +09:00
Satya Rohith
d19c5a73e1
wip 2024-10-14 19:28:59 +05:30
Satya Rohith
ab0598333e
ignore a test 2024-10-14 14:25:09 +05:30
Yoshiya Hinosawa
34ae10643b
chore: fmt, reduce unnecessary diffs 2024-10-03 18:34:40 +09:00
Yoshiya Hinosawa
8d41fbc2da
enable a test case 'ClientRequest search params' 2024-10-03 17:58:25 +09:00
Satya Rohith
007b5265b8
fix: support https requests
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-10-03 11:28:23 +05:30
Yoshiya Hinosawa
8714e718bc
enable another case 2024-10-03 13:31:59 +09:00
Yoshiya Hinosawa
e60e727e5e
enable another test case 2024-10-02 00:40:56 +09:00
Yoshiya Hinosawa
60b3f3742d
enable a test case 2024-10-01 15:47:53 +09:00
Yoshiya Hinosawa
f87fe1cdab
enable client closing a streaming request doesn't terminate server 2024-09-26 19:34:24 +09:00
Yoshiya Hinosawa
15910606e4
enable another destroy test case with some modification 2024-09-26 19:22:46 +09:00
Yoshiya Hinosawa
7a912bfda3
enable [node/http] destroyed requests should not be sent 2024-09-26 19:19:11 +09:00
Yoshiya Hinosawa
7c43c3c988
fmt 2024-09-26 19:10:41 +09:00
Satya Rohith
2c60a4352d
wip: abort request when destroy() is invoked
Yoshiya Hinosawa <stibium121@gmail.com>
2024-09-26 14:20:48 +05:30
Yoshiya Hinosawa
33c4efac51
fmt 2024-09-26 13:31:09 +09:00
Yoshiya Hinosawa
6301b5831c
update test cases 2024-09-26 13:24:55 +09:00
Yoshiya Hinosawa
2f9cdaa67d
fixes 2024-09-26 13:05:21 +09:00
Satya Rohith
32614733bf
wip 2024-09-24 11:01:56 +05:30
Yoshiya Hinosawa
186f7484da
fix(ext/node): close upgraded socket when the underlying http connection is closed (#25387)
This change fixes the handling of upgraded socket from `node:http` module.

In `op_node_http_fetch_response_upgrade`, we create DuplexStream paired
with `hyper::upgrade::Upgraded`. When the connection is closed from the
server, the read result from `Upgraded` becomes 0. However because we
don't close the paired DuplexStream at that point, the Socket object in
JS side keeps alive even after the server closed. That caused the issue
#20179

This change fixes it by closing the paired DuplexStream when the
`Upgraded` stream returns 0 read result.

closes #20179
2024-09-05 13:30:18 +09:00
Yoshiya Hinosawa
d71eebba0d
test(ext/node): check hostname option has precedence over host option (#25292) 2024-08-30 13:25:33 +09:00
Satya Rohith
e920835417
fix(ext/node): pass content-disposition header as string instead of bytes (#25128)
Closes https://github.com/denoland/deno/issues/25117
2024-08-21 10:13:17 +00:00
David Sherret
a7c002ae63
chore: enable no-console dlint rule (#25113) 2024-08-20 15:14:37 -04:00
Marvin Hagemeister
558d2a098b
fix(node/http): wrong req.url value (#25081)
This PR addresses a regression introduced in
https://github.com/denoland/deno/pull/25021 that would cause the
`req.url` parameter in Node's http server to always be a single
character instead of the expected value. The regression was caused by
effectively calling `.indexOf()` on an empty string and thus passing the
wrong index for slicing.

```js
"".indexOf("/") // -> -1
request.url.slice(-1) // effectively only giving us the last character
```

Fixes https://github.com/denoland/deno/issues/25080
2024-08-18 15:37:39 +00:00
Luca Casonato
56e8ed5eb1
fix(ext/node): don't concat set-cookie in ServerResponse.appendHeader (#25000)
Follow-on to
https://github.com/denoland/deno/pull/24216/files#r1642188672
2024-08-12 12:01:37 +02:00
Satya Rohith
65224786d2
fix(ext/node): client closing streaming request shouldn't terminate http server (#24946)
Closes https://github.com/denoland/deno/issues/22820
2024-08-08 10:22:58 +00:00
Yoshiya Hinosawa
99e811f5eb
test(ext/node): reduce http_test flakiness (#24742) 2024-07-27 22:47:47 +09:00
Asher Gomez
5f44148e83
chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
Yoshiya Hinosawa
199a8ca4c5
fix(ext/node/net): emit error before close when connection is refused (#24656) 2024-07-24 20:33:45 +09:00
Satya Rohith
6421dc33ed
fix(ext/node): http request uploads of subarray of buffer should work (#24603)
Closes https://github.com/denoland/deno/issues/24571
2024-07-16 14:16:40 +02:00
Marvin Hagemeister
9a0d59d95d
fix(node/http): don't send destroyed requests (#24498)
Make sure that already destroyed requests are not actually sent.

This error was discovered in jsdom's test suite.
2024-07-10 12:01:08 +02:00
Marvin Hagemeister
2a86edf0af
fix(node/http): don't error if request destroyed before send (#24497)
A request can be destroyed before it was even made in the Node http API.
We errored on that.

This issue was discovered in the JSDOM test suite.
2024-07-10 10:05:41 +02:00
Marvin Hagemeister
07613a6bf2
fix(node/http): support all .writeHead() signatures (#24469)
Implement the missing `.writeHead()` signatures from Node's
`ServerResponse` class that we didn't support.

Fixes https://github.com/denoland/deno/issues/24468
2024-07-09 17:46:10 +02:00
Divy Srivastava
b290fd01f3
fix(ext/node): http chunked writes hangs (#24428)
Fixes https://github.com/denoland/deno/issues/24239
2024-07-05 08:49:42 +05:30
Marvin Hagemeister
96b527b8df
fix(node/http): don't throw on .address() before .listen() (#24432)
It's perfectly valid to access `server.address()` before calling
`.listen()`. Until a server actively listens on a socket Node will
return `null` here, but we threw a "Cannot access property 'port' of
undefined" instead.

This was discovered when inspecting failures in Koa's test suite with
Deno.
2024-07-04 18:28:48 +02:00
Satya Rohith
496ea5903b
fix(ext/node): don't wait for end() call to send http client request (#24390)
Closes https://github.com/denoland/deno/issues/24232
Closes https://github.com/denoland/deno/issues/24215
2024-07-03 19:00:39 +05:30
Satya Rohith
13aa1d70e9
fix(ext/node): ignore stream error during enqueue (#24243) 2024-06-25 17:02:40 +05:30
Divy Srivastava
416df1e895
fix(ext/node): add ServerResponse#appendHeader (#24216) 2024-06-21 19:21:59 +05:30
Divy Srivastava
e19ee6eecc
fix(ext/node): server.close() does graceful shutdown (#24184) 2024-06-14 06:38:50 +05:30
Luca Casonato
3d41b486da
fix(ext/node): ServerResponse header array handling (#24149)
Previously res.setHeader("foo", ["bar", "baz"]) added a single header
with a value of `bar,baz`. Really this should add two separate headers.
This is visible in `set-cookie` for example.
2024-06-11 13:39:44 +03:00
Marvin Hagemeister
8806eac634
fix(node): set default http server response code 200 (#23977)
Node sets the default HTTP response status code to 200 on the
`ServerResponse`. We initialised it as `undefined` before which caused a
problem with 11ty's dev server.

Thanks to @vrugtehagel for reporting this issue and finding the correct
fix as well 🎉

Fixes https://github.com/denoland/deno/issues/23970
2024-05-26 09:32:46 +02:00
Asher Gomez
8a636d0600
feat(ext/fetch): Request.bytes() and Response.bytes() (#23823)
Closes #23790
2024-05-23 00:27:58 +00:00
David Sherret
e661591e7c
chore: fix flaky '[node/http] send request with non-chunked body' test (#23818)
https://github.com/denoland/deno/actions/runs/9086887959/job/24973565321
2024-05-15 08:37:46 -04:00
Bartek Iwańczuk
14ae4f897f
fix(ext/node): define http.maxHeaderSize (#23479)
Closes https://github.com/denoland/deno/issues/23432
2024-04-21 07:31:23 +05:30
Matt Mastracci
5e2a747685
fix(ext/node): Correctly send ALPN on node TLS connections (#23434)
Landing work from #21903, plus fixing a node compat bug.

We were always sending the HTTP/2 ALPN on TLS connections which might
confuse upstream servers.

Changes:
- Configure HTTP/2 ALPN when making the TLS connection from the HTTP/2
code
- Read the `ALPNProtocols` property from the TLS connection options
rather than the deno `alpnProtocols` field
 - Add tests

Prereq for landing Deno.serveHttp on Deno.serve: removing older HTTP
servers from the codebase.
2024-04-18 09:37:47 -06:00