-
Notifications
You must be signed in to change notification settings - Fork 540
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
feat: allow connection header in request #1829
Conversation
Codecov ReportBase: 90.12% // Head: 90.03% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #1829 +/- ##
==========================================
- Coverage 90.12% 90.03% -0.09%
==========================================
Files 66 66
Lines 5815 5813 -2
==========================================
- Hits 5241 5234 -7
- Misses 574 579 +5
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
f481f65
to
deb3835
Compare
Sorry for the noise, finger issue 😅 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why isn't it enough to have reset on the request? I don't think you need a reset option on the client.
Is it true that the e.g.
But happy to revert it if everybody agrees this might be an overhead 🙂 |
You can set pipelining to 0 to achieve the same effect. |
lib/client.js
Outdated
@@ -115,6 +117,10 @@ class Client extends DispatcherBase { | |||
throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead') | |||
} | |||
|
|||
if (reset != null && typeof reset !== 'boolean') { | |||
throw new InvalidArgumentError('invalid reset') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in order to have a consistent error message, this should be the same as the previous error message reset must be a boolean
lib/client.js
Outdated
if (reset) { | ||
socket[kReset] = true | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can move this to line 1388
lib/client.js
Outdated
if (blocking) { | ||
socket[kBlocking] = true | ||
} | ||
|
||
const shouldReset = request.reset != null ? request.reset : client[kClientResetValue] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: request.reset ?? client[kClientResetValue]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: this would drop support for v12 and you'd need to remove it from the ci.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, that's true. I recommend doing it in a new pull request, if we are going to drop it (and I think we should)
lib/pool.js
Outdated
@@ -40,6 +41,10 @@ class Pool extends PoolBase { | |||
throw new InvalidArgumentError('invalid connections') | |||
} | |||
|
|||
if (reset != null && reset.constructor !== Boolean) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not typeof reset !== 'boolean'
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was mostly about a way of working, but reverted it to keep in sync with previous @KhafraDev suggestion as well 👍
6dea99e
to
2a3ea3c
Compare
I addressed the changes requested and reverted the extension to cc: @ronag @KhafraDev @anonrig |
lib/core/request.js
Outdated
bodyTimeout, | ||
reset, | ||
throwOnError | ||
} = options |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why change this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean the reset?
Mostly to validate the reset
value and carry over the setting during the request lifecycle, as it is attached to a single request.
Another option is to pass it as a third-parameter to the write
function on lib/client
. What are your thoughts? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just add reset
to the previous list. I don't understand why you moved out options.
lib/core/request.js
Outdated
if (val.toLowerCase() === 'close') { | ||
request.reset = true | ||
} | ||
request.headers += `${key}: ${val}\r\n` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should not set the header here...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Better to do it in Client
or where exactly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead, just switching the value on the reset
will do what's needed, and just check for either one of the close
or keep-alive
options. The settings usually come in the keep-alive
header if custom behavior is desired. Thoughts? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just remove request.headers +=
${key}: ${val}\r\n`` and make sure val is either keep-alive or close.
d34e35a
to
d516952
Compare
Co-authored-by: Robert Nagy <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
@@ -192,6 +192,7 @@ Returns: `Boolean` - `false` if dispatcher is busy and further dispatch calls wo | |||
* **origin** `string | URL` | |||
* **path** `string` | |||
* **method** `string` | |||
* **reset** `boolean` (optional) - Default: `false` - Indicates whether the request should attempt to create a long-living connection by sending the `connection: keep-alive` header, or close it immediately after response by sending `connection: close`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@metcoder95 This is phrased in a confusing way. Documentation implies that "true" means creating long-lived connection, while code seems to indicate the opposite.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right, let me fix it opening a new PR, thanks for the heads up 🙇
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [undici](https://undici.nodejs.org) ([source](https://github.com/nodejs/undici)) | [`5.14.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/undici/5.14.0/5.19.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/5.14.0/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/5.14.0/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | ### GitHub Vulnerability Alerts #### [CVE-2023-23936](https://github.com/nodejs/undici/security/advisories/GHSA-5r9g-qh6m-jxff) ### Impact undici library does not protect `host` HTTP header from CRLF injection vulnerabilities. ### Patches This issue was patched in Undici v5.19.1. ### Workarounds Sanitize the `headers.host` string before passing to undici. ### References Reported at https://hackerone.com/reports/1820955. ### Credits Thank you to Zhipeng Zhang ([@​timon8](https://hackerone.com/timon8)) for reporting this vulnerability. --- ### Release Notes <details> <summary>nodejs/undici (undici)</summary> ### [`v5.19.1`](https://github.com/nodejs/undici/releases/tag/v5.19.1) [Compare Source](https://github.com/nodejs/undici/compare/v5.19.0...v5.19.1) ####⚠️ Security Release⚠️ - [Regular Expression Denial of Service in Headers](https://github.com/nodejs/undici/security/advisories/GHSA-r6ch-mqf9-qc9w) with CVE-2023-24807 - [CRLF Injection in Nodejs ‘undici’ via host](https://github.com/nodejs/undici/security/advisories/GHSA-5r9g-qh6m-jxff) with CVE-2023-23936 This release is part of the Node.js security release train: https://nodejs.org/en/blog/vulnerability/february-2023-security-releases/ ### [`v5.19.0`](https://github.com/nodejs/undici/releases/tag/v5.19.0) [Compare Source](https://github.com/nodejs/undici/compare/v5.18.0...v5.19.0) #### What's Changed - fix(fetch): raise AbortSignal max event listeners by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1910](https://github.com/nodejs/undici/pull/1910) - fix: content-disposition header parsing by [@​climba03003](https://github.com/climba03003) in [https://github.com/nodejs/undici/pull/1911](https://github.com/nodejs/undici/pull/1911) - fix: remove test by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1916](https://github.com/nodejs/undici/pull/1916) - feat: add Headers.prototype.getSetCookie by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1915](https://github.com/nodejs/undici/pull/1915) - fix(headers): clone getSetCookie list & add getSetCookie type by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1917](https://github.com/nodejs/undici/pull/1917) - doc(mock): update out-of-date reply documentation by [@​p9f](https://github.com/p9f) in [https://github.com/nodejs/undici/pull/1913](https://github.com/nodejs/undici/pull/1913) - fix(types): add missing keepAlive params by [@​SkeLLLa](https://github.com/SkeLLLa) in [https://github.com/nodejs/undici/pull/1918](https://github.com/nodejs/undici/pull/1918) - Make the fetch() abort test pass locally, on Linux and Mac, Node 18/19. by [@​mcollina](https://github.com/mcollina) in [https://github.com/nodejs/undici/pull/1927](https://github.com/nodejs/undici/pull/1927) #### New Contributors - [@​climba03003](https://github.com/climba03003) made their first contribution in [https://github.com/nodejs/undici/pull/1911](https://github.com/nodejs/undici/pull/1911) - [@​p9f](https://github.com/p9f) made their first contribution in [https://github.com/nodejs/undici/pull/1913](https://github.com/nodejs/undici/pull/1913) **Full Changelog**: nodejs/undici@v5.18.0...v5.19.0 ### [`v5.18.0`](https://github.com/nodejs/undici/releases/tag/v5.18.0) [Compare Source](https://github.com/nodejs/undici/compare/v5.17.1...v5.18.0) ##### What's Changed - Add ability to set TCP keepalive by [@​xconverge](https://github.com/xconverge) in [https://github.com/nodejs/undici/pull/1904](https://github.com/nodejs/undici/pull/1904) - use faster timers by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1908](https://github.com/nodejs/undici/pull/1908) - fix: ensure header value is a string by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1899](https://github.com/nodejs/undici/pull/1899) **Full Changelog**: nodejs/undici@v5.17.1...v5.18.0 ### [`v5.17.1`](https://github.com/nodejs/undici/releases/tag/v5.17.1) [Compare Source](https://github.com/nodejs/undici/compare/v5.17.0...v5.17.1) #### What's Changed - fix: bad buffer slice (nodejs/undici@d2be675) **Full Changelog**: nodejs/undici@v5.17.0...v5.17.1 ### [`v5.17.0`](https://github.com/nodejs/undici/releases/tag/v5.17.0) [Compare Source](https://github.com/nodejs/undici/compare/v5.16.0...v5.17.0) #### What's Changed - fix(wpts): Blob is a global getter in >=v19.x.x by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1880](https://github.com/nodejs/undici/pull/1880) - doc: fix anchor links dispatcher.stream by [@​RafaelGSS](https://github.com/RafaelGSS) in [https://github.com/nodejs/undici/pull/1881](https://github.com/nodejs/undici/pull/1881) - wpt: make runner more resilient by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1884](https://github.com/nodejs/undici/pull/1884) - Make test pass in v19.x by [@​mcollina](https://github.com/mcollina) in [https://github.com/nodejs/undici/pull/1879](https://github.com/nodejs/undici/pull/1879) - Correct the type of DispatchOptions\["headers"] by [@​pan93412](https://github.com/pan93412) in [https://github.com/nodejs/undici/pull/1896](https://github.com/nodejs/undici/pull/1896) - perf(content-type parser): faster string collector by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1894](https://github.com/nodejs/undici/pull/1894) - feat: expose content-type parser by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1895](https://github.com/nodejs/undici/pull/1895) - fix(types): Update DispatchOptions type for missing "blocking" by [@​xconverge](https://github.com/xconverge) in [https://github.com/nodejs/undici/pull/1889](https://github.com/nodejs/undici/pull/1889) - fix(types): update error type definitions by [@​rafaelcr](https://github.com/rafaelcr) in [https://github.com/nodejs/undici/pull/1888](https://github.com/nodejs/undici/pull/1888) - fix: ensure connection header is a string by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1900](https://github.com/nodejs/undici/pull/1900) - fix: throw if invalid content-type header by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1901](https://github.com/nodejs/undici/pull/1901) - fix(fetch): use semicolon for Cookie header delimiter by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1906](https://github.com/nodejs/undici/pull/1906) - Use FastBuffer by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1907](https://github.com/nodejs/undici/pull/1907) #### New Contributors - [@​pan93412](https://github.com/pan93412) made their first contribution in [https://github.com/nodejs/undici/pull/1896](https://github.com/nodejs/undici/pull/1896) - [@​rafaelcr](https://github.com/rafaelcr) made their first contribution in [https://github.com/nodejs/undici/pull/1888](https://github.com/nodejs/undici/pull/1888) **Full Changelog**: nodejs/undici@v5.16.0...v5.17.0 ### [`v5.16.0`](https://github.com/nodejs/undici/releases/tag/v5.16.0) [Compare Source](https://github.com/nodejs/undici/compare/v5.15.2...v5.16.0) #### What's Changed - Add feature to specify custom headers for proxies by [@​Sebmaster](https://github.com/Sebmaster) in [https://github.com/nodejs/undici/pull/1877](https://github.com/nodejs/undici/pull/1877) #### New Contributors - [@​Sebmaster](https://github.com/Sebmaster) made their first contribution in [https://github.com/nodejs/undici/pull/1877](https://github.com/nodejs/undici/pull/1877) **Full Changelog**: nodejs/undici@v5.15.2...v5.16.0 ### [`v5.15.2`](https://github.com/nodejs/undici/compare/9d5f23177408dc16d3d4cbb8cebf463081c54e16...9457c9719029945ef9ff36b71d58557443730942) [Compare Source](https://github.com/nodejs/undici/compare/v5.15.1...v5.15.2) ### [`v5.15.1`](https://github.com/nodejs/undici/releases/tag/v5.15.1) [Compare Source](https://github.com/nodejs/undici/compare/v5.15.0...v5.15.1) #### What's Changed - fix(websocket): simplify typedarray copying by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1854](https://github.com/nodejs/undici/pull/1854) - fix: wpts on node v18.13.0+ by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1859](https://github.com/nodejs/undici/pull/1859) - perf: allow keep alive for HEAD requests by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1858](https://github.com/nodejs/undici/pull/1858) - fix: flaky abort test by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1863](https://github.com/nodejs/undici/pull/1863) **Full Changelog**: nodejs/undici@v5.15.0...v5.15.1 ### [`v5.15.0`](https://github.com/nodejs/undici/releases/tag/v5.15.0) [Compare Source](https://github.com/nodejs/undici/compare/v5.14.0...v5.15.0) #### What's Changed - \[types] update ProxyAgent Options (timeout) by [@​sosoba](https://github.com/sosoba) in [https://github.com/nodejs/undici/pull/1801](https://github.com/nodejs/undici/pull/1801) - feat: implement websockets by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1795](https://github.com/nodejs/undici/pull/1795) - feat(websocket): handle ping/pong frames & fix fragmented frames by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1809](https://github.com/nodejs/undici/pull/1809) - docs: add basic fetch & company docs by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1810](https://github.com/nodejs/undici/pull/1810) - make formdata body immutable and encode it only once by [@​jimmywarting](https://github.com/jimmywarting) in [https://github.com/nodejs/undici/pull/1814](https://github.com/nodejs/undici/pull/1814) - test: add regression test for [#​1814](https://github.com/nodejs/undici/issues/1814) by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1815](https://github.com/nodejs/undici/pull/1815) - feat(websocket): only consume necessary bytes by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1812](https://github.com/nodejs/undici/pull/1812) - websocket: use Buffer.allocUnsafe by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1817](https://github.com/nodejs/undici/pull/1817) - build(deps-dev): bump [@​sinonjs/fake-timers](https://github.com/sinonjs/fake-timers) from 9.1.2 to 10.0.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/nodejs/undici/pull/1819](https://github.com/nodejs/undici/pull/1819) - fix(websocket): deprecation warning & 64-bit unsigned int body length by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1818](https://github.com/nodejs/undici/pull/1818) - Use nodejs.stream.destroyed symbol by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1816](https://github.com/nodejs/undici/pull/1816) - fetch: removal of redundant condition by [@​debadree25](https://github.com/debadree25) in [https://github.com/nodejs/undici/pull/1821](https://github.com/nodejs/undici/pull/1821) - fix(request): request headers array by [@​jd-carroll](https://github.com/jd-carroll) in [https://github.com/nodejs/undici/pull/1807](https://github.com/nodejs/undici/pull/1807) - fix(websocket): validate payload length received by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1822](https://github.com/nodejs/undici/pull/1822) - fix(websocket): run parser in loop, instead of recursively by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1828](https://github.com/nodejs/undici/pull/1828) - fix(fetch): weaker refs by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1824](https://github.com/nodejs/undici/pull/1824) - websocket: add tests for opening handshake by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1831](https://github.com/nodejs/undici/pull/1831) - websocket: add tests for constructor, close, and send by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1832](https://github.com/nodejs/undici/pull/1832) - websocket: more test coverage by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1833](https://github.com/nodejs/undici/pull/1833) - fix(WPTs): flaky abort test by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1835](https://github.com/nodejs/undici/pull/1835) - wpt: add test by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1836](https://github.com/nodejs/undici/pull/1836) - fix: don't send keep-alive if we want reset by [@​ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1846](https://github.com/nodejs/undici/pull/1846) - fetch: update body consume to match spec by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1847](https://github.com/nodejs/undici/pull/1847) - feat: allow connection header in request by [@​metcoder95](https://github.com/metcoder95) in [https://github.com/nodejs/undici/pull/1829](https://github.com/nodejs/undici/pull/1829) - feat: add cookie parsing ability by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1848](https://github.com/nodejs/undici/pull/1848) - fix(cookie): add docs & expose in node v16 by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1849](https://github.com/nodejs/undici/pull/1849) - fix(cookies): work with global Headers by [@​KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1850](https://github.com/nodejs/undici/pull/1850) - docs(Dispatcher): adjust documentation for reset flag by [@​metcoder95](https://github.com/metcoder95) in [https://github.com/nodejs/undici/pull/1852](https://github.com/nodejs/undici/pull/1852) - Fix broken interceptor test by [@​mcollina](https://github.com/mcollina) in [https://github.com/nodejs/undici/pull/1853](https://github.com/nodejs/undici/pull/1853) #### New Contributors - [@​sosoba](https://github.com/sosoba) made their first contribution in [https://github.com/nodejs/undici/pull/1801](https://github.com/nodejs/undici/pull/1801) - [@​debadree25](https://github.com/debadree25) made their first contribution in [https://github.com/nodejs/undici/pull/1821](https://github.com/nodejs/undici/pull/1821) - [@​jd-carroll](https://github.com/jd-carroll) made their first contribution in [https://github.com/nodejs/undici/pull/1807](https://github.com/nodejs/undici/pull/1807) **Full Changelog**: nodejs/undici@v5.14.0...v5.15.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/sammyfilly/Canary-nextjs).
Looks like this incorrectly closed #1305 - it only partly addresses it. It still doesn't appear to be possible to customise |
Please, feel free to open a new issue to reevaluate and see further actions 🙂 |
Will do, but also, please don't mark issues closed in a PR unless the issue is actually fully closed - it just creates unnecessary churn and fragmentation. |
setting a custom sec-fetch-mode is probably a wontfix anyways. |
Follow up from #1747
References
"sec-fetch-mode"
,"connection"
headers. #1305Client.reset
to reset connection without destroying client #444