mirror of
https://github.com/nodejs/node.git
synced 2025-04-29 06:19:07 +00:00

Given that `common/net` already exists and hasMultiLocalhost is net specific, let's move it out of common/index to better encapsulate and simplify common/index more PR-URL: https://github.com/nodejs/node/pull/56716 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
34 lines
826 B
JavaScript
34 lines
826 B
JavaScript
'use strict';
|
|
const net = require('net');
|
|
|
|
const options = { port: 0, reusePort: true };
|
|
|
|
function checkSupportReusePort() {
|
|
return new Promise((resolve, reject) => {
|
|
const server = net.createServer().listen(options);
|
|
server.on('listening', () => {
|
|
server.close(resolve);
|
|
});
|
|
server.on('error', (err) => {
|
|
console.log('The `reusePort` option is not supported:', err.message);
|
|
server.close();
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
function hasMultiLocalhost() {
|
|
const { internalBinding } = require('internal/test/binding');
|
|
const { TCP, constants: TCPConstants } = internalBinding('tcp_wrap');
|
|
const t = new TCP(TCPConstants.SOCKET);
|
|
const ret = t.bind('127.0.0.2', 0);
|
|
t.close();
|
|
return ret === 0;
|
|
}
|
|
|
|
module.exports = {
|
|
checkSupportReusePort,
|
|
hasMultiLocalhost,
|
|
options,
|
|
};
|