Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a6dc57b

Browse files
committed
net: set default highwatermark at socket creation time
1 parent b68fa59 commit a6dc57b

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

lib/net.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1735,11 +1735,8 @@ function Server(options, connectionListener) {
17351735
if (typeof options.highWaterMark !== 'undefined') {
17361736
validateNumber(
17371737
options.highWaterMark, 'options.highWaterMark',
1738+
0
17381739
);
1739-
1740-
if (options.highWaterMark < 0) {
1741-
options.highWaterMark = getDefaultHighWaterMark();
1742-
}
17431740
}
17441741

17451742
this._connections = 0;
@@ -1755,7 +1752,7 @@ function Server(options, connectionListener) {
17551752
this.noDelay = Boolean(options.noDelay);
17561753
this.keepAlive = Boolean(options.keepAlive);
17571754
this.keepAliveInitialDelay = ~~(options.keepAliveInitialDelay / 1000);
1758-
this.highWaterMark = options.highWaterMark ?? getDefaultHighWaterMark();
1755+
this.highWaterMark = options.highWaterMark ?? undefined;
17591756
}
17601757
ObjectSetPrototypeOf(Server.prototype, EventEmitter.prototype);
17611758
ObjectSetPrototypeOf(Server, EventEmitter);

test/parallel/test-http-server-options-highwatermark.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const assert = require('assert');
55
const http = require('http');
66
const { kHighWaterMark } = require('_http_outgoing');
77

8-
const { getDefaultHighWaterMark } = require('internal/streams/state');
8+
const { getDefaultHighWaterMark, setDefaultHighWaterMark } = require('internal/streams/state');
99

1010
function listen(server) {
1111
server.listen(0, common.mustCall(() => {
@@ -45,3 +45,17 @@ function listen(server) {
4545

4646
listen(server);
4747
}
48+
49+
{
50+
const server = http.createServer(
51+
common.mustCall((req, res) => {
52+
assert.strictEqual(req._readableState.highWaterMark, getDefaultHighWaterMark() * 2);
53+
assert.strictEqual(res[kHighWaterMark], getDefaultHighWaterMark() * 2);
54+
res.statusCode = 200;
55+
res.end();
56+
})
57+
);
58+
59+
setDefaultHighWaterMark(getDefaultHighWaterMark() * 2);
60+
listen(server);
61+
}

0 commit comments

Comments
 (0)