| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 83875f4 commit 3c0c5e0
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1502,9 +1502,13 @@ or waiting for a response. | |||
| 1502 | 1502 | added: | |
| 1503 | 1503 | - v11.3.0 | |
| 1504 | 1504 | - v10.14.0 | |
| 1505 | + changes: | ||
| 1506 | + - version: REPLACEME | ||
| 1507 | + pr-url: https://github.com/nodejs/node/pull/45778 | ||
| 1508 | + description: The default is now set to the minimum between 60000 (60 seconds) or `requestTimeout`. | ||
| 1505 | 1509 | --> | |
| 1506 | 1510 | ||
| 1507 | - * {number} **Default:** `60000` | ||
| 1511 | + * {number} **Default:** The minimum between [`server.requestTimeout`][] or `60000`. | ||
| 1508 | 1512 | ||
| 1509 | 1513 | Limit the amount of time the parser will wait to receive the complete HTTP | |
| 1510 | 1514 | headers. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -24,6 +24,7 @@ | |||
| 24 | 24 | const { | |
| 25 | 25 | ArrayIsArray, | |
| 26 | 26 | Error, | |
| 27 | + MathMin, | ||
| 27 | 28 | ObjectKeys, | |
| 28 | 29 | ObjectSetPrototypeOf, | |
| 29 | 30 | RegExpPrototypeExec, | |
@@ -451,11 +452,11 @@ function storeHTTPOptions(options) { | |||
| 451 | 452 | validateInteger(headersTimeout, 'headersTimeout', 0); | |
| 452 | 453 | this.headersTimeout = headersTimeout; | |
| 453 | 454 | } else { | |
| 454 | - this.headersTimeout = 60_000; // 60 seconds | ||
| 455 | + this.headersTimeout = MathMin(60_000, this.requestTimeout); // Minimum between 60 seconds or requestTimeout | ||
| 455 | 456 | } | |
| 456 | 457 | ||
| 457 | - if (this.requestTimeout > 0 && this.headersTimeout > 0 && this.headersTimeout >= this.requestTimeout) { | ||
| 458 | - throw new codes.ERR_OUT_OF_RANGE('headersTimeout', '< requestTimeout', headersTimeout); | ||
| 458 | + if (this.requestTimeout > 0 && this.headersTimeout > 0 && this.headersTimeout > this.requestTimeout) { | ||
| 459 | + throw new codes.ERR_OUT_OF_RANGE('headersTimeout', '<= requestTimeout', headersTimeout); | ||
| 459 | 460 | } | |
| 460 | 461 | ||
| 461 | 462 | const keepAliveTimeout = options.keepAliveTimeout; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,50 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + | ||
| 3 | + require('../common'); | ||
| 4 | + const assert = require('assert'); | ||
| 5 | + const { createServer } = require('http'); | ||
| 6 | + | ||
| 7 | + // This test validates that the HTTP server timeouts are properly validated and set. | ||
| 8 | + | ||
| 9 | + { | ||
| 10 | + const server = createServer(); | ||
| 11 | + assert.strictEqual(server.headersTimeout, 60000); | ||
| 12 | + assert.strictEqual(server.requestTimeout, 300000); | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + { | ||
| 16 | + const server = createServer({ headersTimeout: 10000, requestTimeout: 20000 }); | ||
| 17 | + assert.strictEqual(server.headersTimeout, 10000); | ||
| 18 | + assert.strictEqual(server.requestTimeout, 20000); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + { | ||
| 22 | + const server = createServer({ headersTimeout: 10000, requestTimeout: 10000 }); | ||
| 23 | + assert.strictEqual(server.headersTimeout, 10000); | ||
| 24 | + assert.strictEqual(server.requestTimeout, 10000); | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + { | ||
| 28 | + const server = createServer({ headersTimeout: 10000 }); | ||
| 29 | + assert.strictEqual(server.headersTimeout, 10000); | ||
| 30 | + assert.strictEqual(server.requestTimeout, 300000); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + { | ||
| 34 | + const server = createServer({ requestTimeout: 20000 }); | ||
| 35 | + assert.strictEqual(server.headersTimeout, 20000); | ||
| 36 | + assert.strictEqual(server.requestTimeout, 20000); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + { | ||
| 40 | + const server = createServer({ requestTimeout: 100000 }); | ||
| 41 | + assert.strictEqual(server.headersTimeout, 60000); | ||
| 42 | + assert.strictEqual(server.requestTimeout, 100000); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + { | ||
| 46 | + assert.throws( | ||
| 47 | + () => createServer({ headersTimeout: 10000, requestTimeout: 1000 }), | ||
| 48 | + { code: 'ERR_OUT_OF_RANGE' } | ||
| 49 | + ); | ||
| 50 | + } | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments