Improved remote desktop key release, added Let's Encrypt nochecks:true.
Ylian Saint-Hilaire committed
Feb 6, 2020 at 18:04 UTC
e9dd9dc270d94c889160955052767bda55e48362
3 files changed
+17
-15
meshcentral.js
+4
@@ -1050,6 +1050,10 @@ function CreateMeshCentralServer(config, args) {
1050
const nodeVersion = Number(process.version.match(/^v(\d+\.\d+)/)[1]);
1051
if ((nodeVersion < 8) || (require('crypto').generateKeyPair == null) || (obj.config.letsencrypt == null) || (obj.redirserver == null)) {
1052
obj.StartEx3(certs); // Just use the configured certificates
1053
+ } else if ((obj.config.letsencrypt != null) && (obj.config.letsencrypt.nochecks == true)) {
1054
+ // Use Let's Encrypt with no checking
1055
+ obj.letsencrypt = require('./letsencrypt.js').CreateLetsEncrypt(obj);
1056
+ obj.letsencrypt.getCertificate(certs, obj.StartEx3); // Use Let's Encrypt with no checking, use at your own risk.
1057
} else {
1058
// Check Let's Encrypt settings
1059
var leok = true;
package.json
+1
-1
@@ -1,6 +1,6 @@
1
{
2
"name": "meshcentral",
3
- "version": "0.4.8-r",
3
+ "version": "0.4.8-t",
4
"keywords": [
5
"Remote Management",
6
"Intel AMT",
public/scripts/agent-desktop-0.0.2.js
+12
-14
@@ -32,9 +32,7 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
32
obj.firstUpKeys = [];
33
obj.stopInput = false;
34
obj.localKeyMap = true;
35
- obj.altPressed = false;
36
- obj.ctrlPressed = false;
37
- obj.shiftPressed = false;
35
+ obj.pressedKeys = [];
36
37
obj.sessionid = 0;
38
obj.username;
@@ -421,7 +419,15 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
419
//console.log('SendKeyMsgKC', action, kc);
420
if (obj.State != 3) return;
421
if (typeof action == 'object') { for (var i in action) { obj.SendKeyMsgKC(action[i][0], action[i][1]); } }
424
- else { obj.send(String.fromCharCode(0x00, obj.InputType.KEY, 0x00, 0x06, (action - 1), kc)); }
422
+ else {
423
+ if (action == 1) { // Key Down
424
+ if (obj.pressedKeys.indexOf(kc) == -1) { obj.pressedKeys.unshift(kc); } // Add key press to start of array
425
+ } else if (action == 2) { // Key Up
426
+ var i = obj.pressedKeys.indexOf(kc);
427
+ if (i != -1) { obj.pressedKeys.splice(i, 1); } // Remove the key press from the pressed array
428
+ }
429
+ obj.send(String.fromCharCode(0x00, obj.InputType.KEY, 0x00, 0x06, (action - 1), kc));
430
+ }
431
}
432
433
obj.sendcad = function() { obj.SendCtrlAltDelMsg(); }
@@ -547,25 +553,17 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
553
obj.firstUpKeys.push(e.keyCode);
554
if ((obj.firstUpKeys.length == 5)) { var j = obj.firstUpKeys.join(','); if ((j == '16,17,91,91,16') || (j == '16,17,18,91,92')) { obj.stopInput = true; } }
555
}
550
- if (e.keyCode == 16) { obj.shiftPressed = false; }
551
- if (e.keyCode == 17) { obj.ctrlPressed = false; }
552
- if (e.keyCode == 18) { obj.altPressed = false; }
556
return obj.xxKeyUp(e);
557
}
558
obj.handleKeyDown = function (e) {
559
if (obj.stopInput == true || desktop.State != 3) return false;
557
- if (e.keyCode == 16) { obj.shiftPressed = true; }
558
- if (e.keyCode == 17) { obj.ctrlPressed = true; }
559
- if (e.keyCode == 18) { obj.altPressed = true; }
560
return obj.xxKeyDown(e);
561
}
562
563
// Release the CTRL, ALT, SHIFT keys if they are pressed.
564
obj.handleReleaseKeys = function () {
565
- if (obj.shiftPressed) { obj.SendKeyMsgKC(obj.KeyAction.UP, 16); } // Shift
566
- if (obj.ctrlPressed) { obj.SendKeyMsgKC(obj.KeyAction.UP, 17); } // Ctrl
567
- if (obj.altPressed) { obj.SendKeyMsgKC(obj.KeyAction.UP, 18); } // Alt
568
- obj.shiftPressed = obj.ctrlPressed = obj.altPressed = false;
565
+ var p = JSON.parse(JSON.stringify(obj.pressedKeys)); // Clone the pressed array
566
+ for (var i in p) { obj.SendKeyMsgKC(obj.KeyAction.UP, p[i]); } // Release all keys
567
}
568
569
// Mouse handlers