Skip to content

Commit

Permalink
net: set default highwatermark at socket creation time
Browse files Browse the repository at this point in the history
  • Loading branch information
lukiano committed Jul 22, 2023
1 parent b68fa59 commit d6e7851
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
8 changes: 2 additions & 6 deletions lib/net.js
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ const {
startPerf,
stopPerf,
} = require('internal/perf/observe');
const { getDefaultHighWaterMark } = require('internal/streams/state');

function getFlags(ipv6Only) {
return ipv6Only === true ? TCPConstants.UV_TCP_IPV6ONLY : 0;
Expand Down Expand Up @@ -1735,11 +1734,8 @@ function Server(options, connectionListener) {
if (typeof options.highWaterMark !== 'undefined') {
validateNumber(
options.highWaterMark, 'options.highWaterMark',
0,
);

if (options.highWaterMark < 0) {
options.highWaterMark = getDefaultHighWaterMark();
}
}

this._connections = 0;
Expand All @@ -1755,7 +1751,7 @@ function Server(options, connectionListener) {
this.noDelay = Boolean(options.noDelay);
this.keepAlive = Boolean(options.keepAlive);
this.keepAliveInitialDelay = ~~(options.keepAliveInitialDelay / 1000);
this.highWaterMark = options.highWaterMark ?? getDefaultHighWaterMark();
this.highWaterMark = options.highWaterMark;
}
ObjectSetPrototypeOf(Server.prototype, EventEmitter.prototype);
ObjectSetPrototypeOf(Server, EventEmitter);
Expand Down
16 changes: 15 additions & 1 deletion test/parallel/test-http-server-options-highwatermark.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const assert = require('assert');
const http = require('http');
const { kHighWaterMark } = require('_http_outgoing');

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

function listen(server) {
server.listen(0, common.mustCall(() => {
Expand Down Expand Up @@ -45,3 +45,17 @@ function listen(server) {

listen(server);
}

{
const server = http.createServer(
common.mustCall((req, res) => {
assert.strictEqual(req._readableState.highWaterMark, getDefaultHighWaterMark() * 2);
assert.strictEqual(res[kHighWaterMark], getDefaultHighWaterMark() * 2);
res.statusCode = 200;
res.end();
})
);

setDefaultHighWaterMark(false, getDefaultHighWaterMark() * 2);
listen(server);
}

0 comments on commit d6e7851

Please sign in to comment.