Updated terminal flow, to check for promise completion

This commit is contained in:
Bryan Roe 2020-05-19 01:21:07 -07:00
parent 6a72d81a6d
commit 8aa212593d
1 changed files with 18 additions and 2 deletions

View File

@ -1185,6 +1185,8 @@ function createMeshCore(agent) {
this.end = function () this.end = function ()
{ {
if (this.httprequest.tpromise._consent) { this.httprequest.tpromise._consent.close(); } if (this.httprequest.tpromise._consent) { this.httprequest.tpromise._consent.close(); }
if (this.httprequest.connectionPromise) { this.httprequest.connectionPromise._rej('Closed'); }
// Remove the terminal session to the count to update the server // Remove the terminal session to the count to update the server
if (this.httprequest.userid != null) if (this.httprequest.userid != null)
{ {
@ -1271,8 +1273,15 @@ function createMeshCore(agent) {
this.httprequest._dispatcher = require('win-dispatcher').dispatch({ modules: [{ name: 'win-virtual-terminal', script: getJSModule('win-virtual-terminal') }], launch: { module: 'win-virtual-terminal', method: (this.httprequest.protocol == 6 ? 'StartPowerShell' : 'Start'), args: [cols, rows] } }); this.httprequest._dispatcher = require('win-dispatcher').dispatch({ modules: [{ name: 'win-virtual-terminal', script: getJSModule('win-virtual-terminal') }], launch: { module: 'win-virtual-terminal', method: (this.httprequest.protocol == 6 ? 'StartPowerShell' : 'Start'), args: [cols, rows] } });
this.httprequest._dispatcher.httprequest = this.httprequest; this.httprequest._dispatcher.httprequest = this.httprequest;
this.httprequest._dispatcher.on('connection', function (c) this.httprequest._dispatcher.on('connection', function (c)
{
if (this.httprequest.connectionPromise.completed)
{
c.end();
}
else
{ {
this.httprequest.connectionPromise._res(c); this.httprequest.connectionPromise._res(c);
}
}); });
} }
else else
@ -1304,8 +1313,15 @@ function createMeshCore(agent) {
} }
that.httprequest._dispatcher.ws = that; that.httprequest._dispatcher.ws = that;
that.httprequest._dispatcher.on('connection', function (c) that.httprequest._dispatcher.on('connection', function (c)
{
if (this.ws.httprequest.connectionPromise.completed)
{
c.end();
}
else
{ {
this.ws.httprequest.connectionPromise._res(c); this.ws.httprequest.connectionPromise._res(c);
}
}); });
} }
}); });