in src/connector.ts [316:354]
async startLocalProxy({
authType,
ipType,
instanceConnectionName,
listenOptions,
}: SocketConnectionOptions): Promise<void> {
const {stream} = await this.getOptions({
authType,
ipType,
instanceConnectionName,
});
// Opens a local server that listens
// to the location defined by `listenOptions`
const server = createServer();
this.localProxies.add(server);
/* c8 ignore next 3 */
server.once('error', err => {
console.error(err);
});
// When a connection is established, pipe data from the
// local proxy server to the secure TCP Socket and vice-versa.
server.on('connection', c => {
const s = stream();
this.sockets.add(s);
this.sockets.add(c);
c.pipe(s);
s.pipe(c);
});
const listen = promisify(server.listen) as Function;
await listen.call(server, {
path: listenOptions.path,
readableAll: listenOptions.readableAll,
writableAll: listenOptions.writableAll,
});
}