Bryan's fix for meshcore.js: Added dispatcher.close() for setclip on Windows, if the dispatcher already exists
Ylian Saint-Hilaire committed
Aug 27, 2022 at 15:01 UTC
70448ac197a3e85fefb31af87333f6afda7ed7ec
1 file changed
+6
-4
agents/meshcore.js
+6
-4
@@ -1339,7 +1339,7 @@ function handleServerCommand(data) {
1339
}
1340
});
1341
} else {
1342
- require("clipboard").read().then(function (str) {
1342
+ require('clipboard').read().then(function (str) {
1343
if (str) {
1344
MeshServerLogEx(21, [str.length], "Getting clipboard content, " + str.length + " byte(s)", data);
1345
mesh.SendCommand({ action: 'msg', type: 'getclip', sessionid: data.sessionid, data: str, tag: data.tag });
@@ -1364,6 +1364,7 @@ function handleServerCommand(data) {
1364
var domain = require('user-sessions').getDomain(uid);
1365
user = (domain + '\\' + user);
1366
1367
+ if (this._dispatcher) { this._dispatcher.close(); }
1368
this._dispatcher = require('win-dispatcher').dispatch({ user: user, modules: [{ name: 'clip-dispatch', script: "module.exports = { dispatch: function dispatch(val) { require('clipboard')(val); process.exit(); } };" }], launch: { module: 'clip-dispatch', method: 'dispatch', args: [clipargs] } });
1369
this._dispatcher.parent = this;
1370
//require('events').setFinalizerMetadata.call(this._dispatcher, 'clip-dispatch');
@@ -1381,7 +1382,7 @@ function handleServerCommand(data) {
1382
}
1383
}
1384
else {
1384
- require("clipboard")(data.data);
1385
+ require('clipboard')(data.data);
1386
mesh.SendCommand({ action: 'msg', type: 'setclip', sessionid: data.sessionid, success: true });
1387
} // Set the clipboard
1388
}
@@ -4322,7 +4323,7 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
4323
if (require('MeshAgent').isService) {
4324
require('clipboard').dispatchRead().then(function (str) { sendConsoleText(str, sessionid); });
4325
} else {
4325
- require("clipboard").read().then(function (str) { sendConsoleText(str, sessionid); });
4326
+ require('clipboard').read().then(function (str) { sendConsoleText(str, sessionid); });
4327
}
4328
break;
4329
case 'setclip': {
@@ -4340,6 +4341,7 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
4341
var domain = require('user-sessions').getDomain(uid);
4342
user = (domain + '\\' + user);
4343
4344
+ if (this._dispatcher) { this._dispatcher.close(); }
4345
this._dispatcher = require('win-dispatcher').dispatch({ user: user, modules: [{ name: 'clip-dispatch', script: "module.exports = { dispatch: function dispatch(val) { require('clipboard')(val); process.exit(); } };" }], launch: { module: 'clip-dispatch', method: 'dispatch', args: [clipargs] } });
4346
this._dispatcher.parent = this;
4347
//require('events').setFinalizerMetadata.call(this._dispatcher, 'clip-dispatch');
@@ -4357,7 +4359,7 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
4359
response = 'Setting clipboard to: "' + args['_'][0] + '"';
4360
}
4361
else {
4360
- require("clipboard")(args['_'][0]); response = 'Setting clipboard to: "' + args['_'][0] + '"';
4362
+ require('clipboard')(args['_'][0]); response = 'Setting clipboard to: "' + args['_'][0] + '"';
4363
}
4364
}
4365
break;