Skip to content

Commit d6e7851

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

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

lib/net.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ const {
156156
startPerf,
157157
stopPerf,
158158
} = require('internal/perf/observe');
159-
const { getDefaultHighWaterMark } = require('internal/streams/state');
160159

161160
function getFlags(ipv6Only) {
162161
return ipv6Only === true ? TCPConstants.UV_TCP_IPV6ONLY : 0;
@@ -1735,11 +1734,8 @@ function Server(options, connectionListener) {
17351734
if (typeof options.highWaterMark !== 'undefined') {
17361735
validateNumber(
17371736
options.highWaterMark, 'options.highWaterMark',
1737+
0,
17381738
);
1739-
1740-
if (options.highWaterMark < 0) {
1741-
options.highWaterMark = getDefaultHighWaterMark();
1742-
}
17431739
}
17441740

17451741
this._connections = 0;
@@ -1755,7 +1751,7 @@ function Server(options, connectionListener) {
17551751
this.noDelay = Boolean(options.noDelay);
17561752
this.keepAlive = Boolean(options.keepAlive);
17571753
this.keepAliveInitialDelay = ~~(options.keepAliveInitialDelay / 1000);
1758-
this.highWaterMark = options.highWaterMark ?? getDefaultHighWaterMark();
1754+
this.highWaterMark = options.highWaterMark;
17591755
}
17601756
ObjectSetPrototypeOf(Server.prototype, EventEmitter.prototype);
17611757
ObjectSetPrototypeOf(Server, EventEmitter);

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

+15-1
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(false, getDefaultHighWaterMark() * 2);
60+
listen(server);
61+
}

0 commit comments

Comments
 (0)