init
This commit is contained in:
43
mc_test/node_modules/resolve-alpn/index.js
generated
vendored
Executable file
43
mc_test/node_modules/resolve-alpn/index.js
generated
vendored
Executable file
@ -0,0 +1,43 @@
|
||||
'use strict';
|
||||
const tls = require('tls');
|
||||
|
||||
module.exports = (options = {}, connect = tls.connect) => new Promise((resolve, reject) => {
|
||||
let timeout = false;
|
||||
|
||||
let socket;
|
||||
|
||||
const callback = async () => {
|
||||
await socketPromise;
|
||||
|
||||
socket.off('timeout', onTimeout);
|
||||
socket.off('error', reject);
|
||||
|
||||
if (options.resolveSocket) {
|
||||
resolve({alpnProtocol: socket.alpnProtocol, socket, timeout});
|
||||
|
||||
if (timeout) {
|
||||
await Promise.resolve();
|
||||
socket.emit('timeout');
|
||||
}
|
||||
} else {
|
||||
socket.destroy();
|
||||
resolve({alpnProtocol: socket.alpnProtocol, timeout});
|
||||
}
|
||||
};
|
||||
|
||||
const onTimeout = async () => {
|
||||
timeout = true;
|
||||
callback();
|
||||
};
|
||||
|
||||
const socketPromise = (async () => {
|
||||
try {
|
||||
socket = await connect(options, callback);
|
||||
|
||||
socket.on('error', reject);
|
||||
socket.once('timeout', onTimeout);
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
})();
|
||||
});
|
||||
Reference in New Issue
Block a user