diff --git a/README.md b/README.md index 92f148ca903..91a155b0a16 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Options: - `keepAlive: Boolean`, enable or disable keep alive connections. Default: `true`. -- `maxKeepAliveTimeout: Number`, the maximum allowed `idleTimeout` when overriden by +- `keepAliveMaxTimeout: Number`, the maximum allowed `idleTimeout` when overriden by *keep-alive* hints from the server. Default: `600e3` milliseconds (10min). diff --git a/lib/core/client.js b/lib/core/client.js index c966c3f3940..e145f767b87 100644 --- a/lib/core/client.js +++ b/lib/core/client.js @@ -51,7 +51,7 @@ const { kKeepAliveTimeout, kMaxHeadersSize, kHeadersTimeout, - kMaxKeepAliveTimeout, + kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kKeepAlive } = require('./symbols') @@ -66,6 +66,7 @@ class Client extends EventEmitter { socketTimeout, idleTimeout, maxKeepAliveTimeout, + keepAliveMaxTimeout = maxKeepAliveTimeout, keepAliveTimeoutThreshold, socketPath, requestTimeout, @@ -115,8 +116,8 @@ class Client extends EventEmitter { throw new InvalidArgumentError('invalid idleTimeout') } - if (maxKeepAliveTimeout != null && (!Number.isFinite(maxKeepAliveTimeout) || maxKeepAliveTimeout <= 0)) { - throw new InvalidArgumentError('invalid maxKeepAliveTimeout') + if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { + throw new InvalidArgumentError('invalid keepAliveMaxTimeout') } if (keepAlive != null && typeof keepAlive !== 'boolean') { @@ -143,8 +144,8 @@ class Client extends EventEmitter { this[kUrl] = url this[kSocketPath] = socketPath this[kSocketTimeout] = socketTimeout == null ? 30e3 : socketTimeout - this[kMaxKeepAliveTimeout] = maxKeepAliveTimeout == null ? 600e3 : maxKeepAliveTimeout this[kIdleTimeout] = idleTimeout == null ? 4e3 : idleTimeout + this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold this[kKeepAliveTimeout] = this[kIdleTimeout] this[kKeepAlive] = keepAlive == null ? true : keepAlive @@ -512,7 +513,7 @@ class Parser extends HTTPParser { if (Number.isFinite(keepAliveTimeout)) { const timeout = Math.min( keepAliveTimeout - client[kKeepAliveTimeoutThreshold], - client[kMaxKeepAliveTimeout] + client[kKeepAliveMaxTimeout] ) if (timeout < 1e3) { client[kReset] = true diff --git a/lib/core/symbols.js b/lib/core/symbols.js index c1a6fc60955..135dd8f36c7 100644 --- a/lib/core/symbols.js +++ b/lib/core/symbols.js @@ -8,9 +8,9 @@ module.exports = { kPause: Symbol('pause'), kSocketTimeout: Symbol('socket timeout'), kIdleTimeout: Symbol('idle timeout'), - kMaxKeepAliveTimeout: Symbol('max keep alive timeout'), - kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), kRequestTimeout: Symbol('request timeout'), + kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), + kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), kKeepAliveTimeout: Symbol('keep alive timeout'), kKeepAlive: Symbol('keep alive'), kServerName: Symbol('server name'), diff --git a/test/client-errors.js b/test/client-errors.js index 6eb8eea7b48..6337891e4f5 100644 --- a/test/client-errors.js +++ b/test/client-errors.js @@ -299,20 +299,20 @@ test('invalid options throws', (t) => { try { new Client(new URL('http://localhost:200'), { // eslint-disable-line - maxKeepAliveTimeout: 'asd' + keepAliveMaxTimeout: 'asd' }) // eslint-disable-line } catch (err) { t.ok(err instanceof errors.InvalidArgumentError) - t.strictEqual(err.message, 'invalid maxKeepAliveTimeout') + t.strictEqual(err.message, 'invalid keepAliveMaxTimeout') } try { new Client(new URL('http://localhost:200'), { // eslint-disable-line - maxKeepAliveTimeout: 0 + keepAliveMaxTimeout: 0 }) // eslint-disable-line } catch (err) { t.ok(err instanceof errors.InvalidArgumentError) - t.strictEqual(err.message, 'invalid maxKeepAliveTimeout') + t.strictEqual(err.message, 'invalid keepAliveMaxTimeout') } try { diff --git a/test/client-keep-alive.js b/test/client-keep-alive.js index ed9b2569541..b978c9c245e 100644 --- a/test/client-keep-alive.js +++ b/test/client-keep-alive.js @@ -162,7 +162,7 @@ test('keep-alive max keepalive', (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`, { idleTimeout: 30e3, - maxKeepAliveTimeout: 1e3 + keepAliveMaxTimeout: 1e3 }) t.teardown(client.destroy.bind(client))