Skip to content

Commit

Permalink
fixup! http: make maximum header size configurable per-stream or per-…
Browse files Browse the repository at this point in the history
…server
  • Loading branch information
addaleax committed Nov 30, 2019
1 parent abc91f4 commit a92936a
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
14 changes: 8 additions & 6 deletions doc/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -2048,7 +2048,7 @@ Found'`.
added: v0.1.13
changes:
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/?????
pr-url: https://github.com/nodejs/node/pull/30570
description: The `maxHeaderSize` option is supported now.
- version: v9.6.0, v8.12.0
pr-url: https://github.com/nodejs/node/pull/15752
Expand All @@ -2063,8 +2063,9 @@ changes:
to be used. Useful for extending the original `ServerResponse`. **Default:**
`ServerResponse`.
* `maxHeaderSize` {number} Optionally overrides the value of
[`--max-http-header-size][] for requests received by this server.
**Default:** 8KB.
[`--max-http-header-size`][] for requests received by this server, i.e.
the maximum length of request headers in bytes.
**Default:** 8192 (8KB).
* `requestListener` {Function}

* Returns: {http.Server}
Expand Down Expand Up @@ -2171,7 +2172,7 @@ This can be overridden for servers and client requests by passing the
added: v0.3.6
changes:
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/?????
pr-url: https://github.com/nodejs/node/pull/30570
description: The `maxHeaderSize` option is supported now.
- version: v10.9.0
pr-url: https://github.com/nodejs/node/pull/21616
Expand Down Expand Up @@ -2209,8 +2210,9 @@ changes:
* `localAddress` {string} Local interface to bind for network connections.
* `lookup` {Function} Custom lookup function. **Default:** [`dns.lookup()`][].
* `maxHeaderSize` {number} Optionally overrides the value of
[`--max-http-header-size][] for requests received by this server.
**Default:** 8KB.
[`--max-http-header-size`][] for requests received from the server, i.e.
the maximum length of response headers in bytes.
**Default:** 8192 (8KB).
* `method` {string} A string specifying the HTTP request method. **Default:**
`'GET'`.
* `path` {string} Request path. Should include query string if any.
Expand Down
2 changes: 1 addition & 1 deletion lib/_http_client.js
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ function ClientRequest(input, options, cb) {
}

const maxHeaderSize = options.maxHeaderSize;
if (maxHeaderSize !== undefined && (typeof maxHeaderSize !== 'number' ||
if (maxHeaderSize !== undefined && (!Number.isSafeInteger(maxHeaderSize) ||
maxHeaderSize < 0)) {
throw new ERR_INVALID_ARG_TYPE('maxHeaderSize', 'number', maxHeaderSize);
}
Expand Down
2 changes: 1 addition & 1 deletion lib/_http_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ function Server(options, requestListener) {
this[kServerResponse] = options.ServerResponse || ServerResponse;

const maxHeaderSize = options.maxHeaderSize;
if (maxHeaderSize !== undefined && (typeof maxHeaderSize !== 'number' ||
if (maxHeaderSize !== undefined && (!Number.isSafeInteger(maxHeaderSize) ||
maxHeaderSize < 0)) {
throw new ERR_INVALID_ARG_TYPE('maxHeaderSize', 'number', maxHeaderSize);
}
Expand Down

0 comments on commit a92936a

Please sign in to comment.