mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 13:06:01 +00:00
31 lines
910 B
JavaScript
31 lines
910 B
JavaScript
const uuidv1 = require('uuid/v1');
|
|
const { getSshTunnel } = require('./sshTunnel');
|
|
|
|
const dispatchedMessages = {};
|
|
|
|
async function handleGetSshTunnelRequest({ msgid, connection }, subprocess) {
|
|
const response = await getSshTunnel(connection);
|
|
subprocess.send({ msgtype: 'getsshtunnel-response', msgid, response });
|
|
}
|
|
|
|
function handleGetSshTunnelResponse({ msgid, response }, subprocess) {
|
|
const { resolve } = dispatchedMessages[msgid];
|
|
delete dispatchedMessages[msgid];
|
|
resolve(response);
|
|
}
|
|
|
|
async function getSshTunnelProxy(connection) {
|
|
if (!process.send) return getSshTunnel(connection);
|
|
const msgid = uuidv1();
|
|
process.send({ msgtype: 'getsshtunnel-request', msgid, connection });
|
|
return new Promise((resolve, reject) => {
|
|
dispatchedMessages[msgid] = { resolve, reject };
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
handleGetSshTunnelRequest,
|
|
handleGetSshTunnelResponse,
|
|
getSshTunnelProxy,
|
|
};
|