Updated all MeshAgents.
Ylian Saint-Hilaire committed
Apr 24, 2020 at 18:24 UTC
d787ee07433819c4b3d0a3f112c031ec4eab7aa8
26 files changed
+226
-226
agents/MeshCmd-signed.exe
Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ
agents/MeshCmd64-signed.exe
Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ
agents/MeshService-signed.exe
Binary files a/agents/MeshService-signed.exe and b/agents/MeshService-signed.exe differ
agents/MeshService.exe
Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ
agents/MeshService64-signed.exe
Binary files a/agents/MeshService64-signed.exe and b/agents/MeshService64-signed.exe differ
agents/MeshService64.exe
Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ
agents/meshagent_arm
Binary files a/agents/meshagent_arm and b/agents/meshagent_arm differ
agents/meshagent_arm-linaro
Binary files a/agents/meshagent_arm-linaro and b/agents/meshagent_arm-linaro differ
agents/meshagent_arm64
Binary files a/agents/meshagent_arm64 and b/agents/meshagent_arm64 differ
agents/meshagent_armhf
Binary files a/agents/meshagent_armhf and b/agents/meshagent_armhf differ
agents/meshagent_freebsd_x86-64
Binary files a/agents/meshagent_freebsd_x86-64 and b/agents/meshagent_freebsd_x86-64 differ
agents/meshagent_mips
Binary files a/agents/meshagent_mips and b/agents/meshagent_mips differ
agents/meshagent_osx-x86-64
Binary files a/agents/meshagent_osx-x86-64 and b/agents/meshagent_osx-x86-64 differ
agents/meshagent_pogo
Binary files a/agents/meshagent_pogo and b/agents/meshagent_pogo differ
agents/meshagent_poky
Binary files a/agents/meshagent_poky and b/agents/meshagent_poky differ
agents/meshagent_poky64
Binary files a/agents/meshagent_poky64 and b/agents/meshagent_poky64 differ
agents/meshagent_x86
Binary files a/agents/meshagent_x86 and b/agents/meshagent_x86 differ
agents/meshagent_x86-64
Binary files a/agents/meshagent_x86-64 and b/agents/meshagent_x86-64 differ
agents/meshagent_x86-64_nokvm
Binary files a/agents/meshagent_x86-64_nokvm and b/agents/meshagent_x86-64_nokvm differ
agents/meshagent_x86_nokvm
Binary files a/agents/meshagent_x86_nokvm and b/agents/meshagent_x86_nokvm differ
agents/modules_meshcore/identifiers.js
deleted
-208
@@ -1,208 +0,0 @@
1
-/*
2
-Copyright 2019-2020 Intel Corporation
3
-
4
-Licensed under the Apache License, Version 2.0 (the "License");
5
-you may not use this file except in compliance with the License.
6
-You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
-Unless required by applicable law or agreed to in writing, software
11
-distributed under the License is distributed on an "AS IS" BASIS,
12
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
-See the License for the specific language governing permissions and
14
-limitations under the License.
15
-*/
16
-
17
-function trimIdentifiers(val)
18
-{
19
- for(var v in val)
20
- {
21
- if (!val[v] || val[v] == 'None' || val[v] == '') { delete val[v]; }
22
- }
23
-}
24
-
25
-function linux_identifiers()
26
-{
27
- var identifiers = {};
28
- var ret = {};
29
- var values = {};
30
- if (!require('fs').existsSync('/sys/class/dmi/id')) { throw ('this platform does not have DMI statistics'); }
31
- var entries = require('fs').readdirSync('/sys/class/dmi/id');
32
- for(var i in entries)
33
- {
34
- if (require('fs').statSync('/sys/class/dmi/id/' + entries[i]).isFile())
35
- {
36
- ret[entries[i]] = require('fs').readFileSync('/sys/class/dmi/id/' + entries[i]).toString().trim();
37
-
38
- if (ret[entries[i]] == 'None') { delete ret[entries[i]];}
39
- }
40
- }
41
- identifiers['bios_date'] = ret['bios_date'];
42
- identifiers['bios_vendor'] = ret['bios_vendor'];
43
- identifiers['bios_version'] = ret['bios_version'];
44
- identifiers['board_name'] = ret['board_name'];
45
- identifiers['board_serial'] = ret['board_serial'];
46
- identifiers['board_vendor'] = ret['board_vendor'];
47
- identifiers['board_version'] = ret['board_version'];
48
- identifiers['product_uuid'] = ret['product_uuid'];
49
-
50
- values.identifiers = identifiers;
51
- values.linux = ret;
52
- trimIdentifiers(values.identifiers);
53
- return (values);
54
-}
55
-
56
-function windows_wmic_results(str)
57
-{
58
- var lines = str.trim().split('\r\n');
59
- var keys = lines[0].split(',');
60
- var i, key, keyval;
61
- var tokens;
62
- var result = [];
63
-
64
- for (i = 1; i < lines.length; ++i)
65
- {
66
- var obj = {};
67
- tokens = lines[i].split(',');
68
- for (key = 0; key < keys.length; ++key)
69
- {
70
- if (tokens[key].trim())
71
- {
72
- obj[keys[key].trim()] = tokens[key].trim();
73
- }
74
- }
75
- result.push(obj);
76
- }
77
- return (result);
78
-}
79
-
80
-
81
-function windows_identifiers()
82
-{
83
- var ret = { windows: {}}; values = {}; var items; var i; var item;
84
- var child = require('child_process').execFile(process.env['windir'] + '\\System32\\wbem\\wmic.exe', ['wmic', 'bios', 'get', '/VALUE']);
85
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
86
- child.waitExit();
87
-
88
- var items = child.stdout.str.split('\r\r\n');
89
- for(i in items)
90
- {
91
- item = items[i].split('=');
92
- values[item[0]] = item[1];
93
- }
94
-
95
- ret['identifiers'] = {};
96
- ret['identifiers']['bios_date'] = values['ReleaseDate'];
97
- ret['identifiers']['bios_vendor'] = values['Manufacturer'];
98
- ret['identifiers']['bios_version'] = values['SMBIOSBIOSVersion'];
99
-
100
- child = require('child_process').execFile(process.env['windir'] + '\\System32\\wbem\\wmic.exe', ['wmic', 'BASEBOARD', 'get', '/VALUE']);
101
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
102
- child.waitExit();
103
-
104
- var items = child.stdout.str.split('\r\r\n');
105
- for (i in items)
106
- {
107
- item = items[i].split('=');
108
- values[item[0]] = item[1];
109
- }
110
- ret['identifiers']['board_name'] = values['Product'];
111
- ret['identifiers']['board_serial'] = values['SerialNumber'];
112
- ret['identifiers']['board_vendor'] = values['Manufacturer'];
113
- ret['identifiers']['board_version'] = values['Version'];
114
-
115
- child = require('child_process').execFile(process.env['windir'] + '\\System32\\wbem\\wmic.exe', ['wmic', 'CSProduct', 'get', '/VALUE']);
116
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
117
- child.waitExit();
118
-
119
- var items = child.stdout.str.split('\r\r\n');
120
- for (i in items)
121
- {
122
- item = items[i].split('=');
123
- values[item[0]] = item[1];
124
- }
125
- ret['identifiers']['product_uuid'] = values['UUID'];
126
- trimIdentifiers(ret.identifiers);
127
-
128
- child = require('child_process').execFile(process.env['windir'] + '\\System32\\wbem\\wmic.exe', ['wmic', 'MEMORYCHIP', 'LIST', '/FORMAT:CSV']);
129
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
130
- child.waitExit();
131
- ret.windows.memory = windows_wmic_results(child.stdout.str);
132
-
133
- child = require('child_process').execFile(process.env['windir'] + '\\System32\\wbem\\wmic.exe', ['wmic', 'OS', 'GET', '/FORMAT:CSV']);
134
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
135
- child.waitExit();
136
- ret.windows.osinfo = windows_wmic_results(child.stdout.str)[0];
137
-
138
- child = require('child_process').execFile(process.env['windir'] + '\\System32\\wbem\\wmic.exe', ['wmic', 'PARTITION', 'LIST', '/FORMAT:CSV']);
139
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
140
- child.waitExit();
141
- ret.windows.partitions = windows_wmic_results(child.stdout.str);
142
-
143
- return (ret);
144
-}
145
-function macos_identifiers()
146
-{
147
- var ret = { identifiers: {} };
148
- var child;
149
-
150
- child = require('child_process').execFile('/bin/sh', ['sh']);
151
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
152
- child.stdin.write('ioreg -d2 -c IOPlatformExpertDevice | grep board-id | awk -F= \'{ split($2, res, "\\""); print res[2]; }\'\nexit\n');
153
- child.waitExit();
154
- ret.identifiers.board_name = child.stdout.str.trim();
155
-
156
- child = require('child_process').execFile('/bin/sh', ['sh']);
157
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
158
- child.stdin.write('ioreg -d2 -c IOPlatformExpertDevice | grep IOPlatformSerialNumber | awk -F= \'{ split($2, res, "\\""); print res[2]; }\'\nexit\n');
159
- child.waitExit();
160
- ret.identifiers.board_serial = child.stdout.str.trim();
161
-
162
- child = require('child_process').execFile('/bin/sh', ['sh']);
163
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
164
- child.stdin.write('ioreg -d2 -c IOPlatformExpertDevice | grep manufacturer | awk -F= \'{ split($2, res, "\\""); print res[2]; }\'\nexit\n');
165
- child.waitExit();
166
- ret.identifiers.board_vendor = child.stdout.str.trim();
167
-
168
- child = require('child_process').execFile('/bin/sh', ['sh']);
169
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
170
- child.stdin.write('ioreg -d2 -c IOPlatformExpertDevice | grep version | awk -F= \'{ split($2, res, "\\""); print res[2]; }\'\nexit\n');
171
- child.waitExit();
172
- ret.identifiers.board_version = child.stdout.str.trim();
173
-
174
- child = require('child_process').execFile('/bin/sh', ['sh']);
175
- child.stdout.str = ''; child.stdout.on('data', function (c) { this.str += c.toString(); });
176
- child.stdin.write('ioreg -d2 -c IOPlatformExpertDevice | grep IOPlatformUUID | awk -F= \'{ split($2, res, "\\""); print res[2]; }\'\nexit\n');
177
- child.waitExit();
178
- ret.identifiers.product_uuid = child.stdout.str.trim();
179
-
180
- trimIdentifiers(ret.identifiers);
181
- return (ret);
182
-}
183
-
184
-switch(process.platform)
185
-{
186
- case 'linux':
187
- module.exports = { _ObjectID: 'identifiers', get: linux_identifiers };
188
- break;
189
- case 'win32':
190
- module.exports = { _ObjectID: 'identifiers', get: windows_identifiers };
191
- break;
192
- case 'darwin':
193
- module.exports = { _ObjectID: 'identifiers', get: macos_identifiers };
194
- break;
195
- default:
196
- module.exports = { get: function () { throw ('Unsupported Platform'); } };
197
- break;
198
-}
199
-
200
-
201
-// bios_date = BIOS->ReleaseDate
202
-// bios_vendor = BIOS->Manufacturer
203
-// bios_version = BIOS->SMBIOSBIOSVersion
204
-// board_name = BASEBOARD->Product = ioreg/board-id
205
-// board_serial = BASEBOARD->SerialNumber = ioreg/serial-number | ioreg/IOPlatformSerialNumber
206
-// board_vendor = BASEBOARD->Manufacturer = ioreg/manufacturer
207
-// board_version = BASEBOARD->Version
208
-
meshdesktopmultiplex.js
+218
-9
@@ -13,8 +13,54 @@
13
/*jshint esversion: 6 */
14
"use strict";
15
16
+
17
+/*
18
+--- KVM Commands ---
19
+MNG_KVM_NOP = 0,
20
+MNG_KVM_KEY = 1,
21
+MNG_KVM_MOUSE = 2,
22
+MNG_KVM_MOUSE_CURSOR = 88,
23
+MNG_KVM_MOUSE_MOVE = 89,
24
+MNG_KVM_PICTURE = 3,
25
+MNG_KVM_COPY = 4,
26
+MNG_KVM_COMPRESSION = 5,
27
+MNG_KVM_REFRESH = 6,
28
+MNG_KVM_SCREEN = 7,
29
+MNG_KVM_PAUSE = 8,
30
+MNG_TERMTEXT = 9,
31
+MNG_CTRLALTDEL = 10,
32
+MNG_KVM_GET_DISPLAYS = 11,
33
+MNG_KVM_SET_DISPLAY = 12,
34
+MNG_KVM_FRAME_RATE_TIMER = 13,
35
+MNG_KVM_INIT_TOUCH = 14,
36
+MNG_KVM_TOUCH = 15,
37
+MNG_KVM_CONNECTCOUNT = 16,
38
+MNG_KVM_MESSAGE = 17,
39
+MNG_ECHO = 21,
40
+MNG_JUMBO = 27,
41
+MNG_GETDIR = 50,
42
+MNG_FILEMOVE = 51,
43
+MNG_FILEDELETE = 52,
44
+MNG_FILECOPY = 53,
45
+MNG_FILECREATEDIR = 54,
46
+MNG_FILETRANSFER = 55,
47
+MNG_FILEUPLOAD = 56,
48
+MNG_FILESEARCH = 57,
49
+MNG_FILETRANSFER2 = 58,
50
+MNG_KVM_DISCONNECT = 59,
51
+MNG_GETDIR2 = 60, // Same as MNG_GETDIR but with date/time.
52
+MNG_FILEUPLOAD2 = 61, // Used for slot based fast upload.
53
+MNG_FILEDELETEREC = 62, // Same as MNG_FILEDELETE but recursive
54
+MNG_USERCONSENT = 63, // Used to notify management console of user consent state
55
+MNG_DEBUG = 64, // Debug/Logging Message for ILibRemoteLogging
56
+MNG_ERROR = 65,
57
+MNG_ENCAPSULATE_AGENT_COMMAND = 70
58
+*/
59
+
60
function CreateDesktopDecoder() {
61
var obj = {};
62
+ obj.agent = null;
63
+ obj.viewers = [];
64
obj.width = 0;
65
obj.height = 0;
66
obj.swidth = 0;
@@ -28,9 +74,139 @@ function CreateDesktopDecoder() {
74
obj.lastScreenSizeCounter = 0;
75
obj.firstData = null;
76
obj.lastData = null;
77
+ obj.lastDisplayInfoData = null;
78
+ obj.desktopPaused = true;
79
+ obj.imageCompression = 50;
80
+ obj.imageScaling = 1024;
81
+ obj.imageFrameRate = 50;
82
+
83
+ obj.addPeer = function (peer) {
84
+ if (peer.req.query.browser) {
85
+ console.log('addPeer-viewer');
86
+
87
+ // This is a viewer
88
+ if (obj.viewers.indexOf(peer) >= 0) return true;
89
+ obj.viewers.push(peer);
90
+
91
+ // Setup the viewer
92
+ peer.desktopPaused = true;
93
+ peer.imageCompression = 30;
94
+ peer.imageScaling = 1024;
95
+ peer.imageFrameRate = 100;
96
+ peer.dataPtr = obj.firstData;
97
+ } else {
98
+ console.log('addPeer-agent');
99
+ if (obj.agent != null) return false;
100
+
101
+ // This is the agent
102
+ obj.agent = peer;
103
+
104
+ // Setup the agent
105
+
106
+ }
107
+ return true;
108
+ }
109
+
110
+ obj.removePeer = function (peer) {
111
+ if (peer == agent) {
112
+ console.log('removePeer-agent');
113
+ // Clean up the agent
114
+
115
+ // Agent has disconnected, disconnect everyone.
116
+ } else {
117
+ console.log('removePeer-viewer');
118
+ // Remove a viewer
119
+ var i = obj.viewers.indexOf(peer);
120
+ if (i == -1) return false;
121
+ obj.viewers.splice(i, 1);
122
+
123
+ // Clean up the viewer
124
+
125
+ }
126
+ return true;
127
+ }
128
+
129
+ // Process data coming from the agent or any viewers
130
+ obj.processData = function (peer, data) {
131
+ if (peer == obj.agent) { obj.processAgentData(data); } else { obj.processViewerData(peer, data); }
132
+ }
133
134
+ // Process incoming viewer data
135
+ obj.processViewerData = function (viewer, data) {
136
+ //console.log('ViewerData', data.length);
137
+ if ((typeof data != 'object') || (data.length < 4)) return; // Ignore all control traffic for now (WebRTC)
138
+ var command = data.readUInt16BE(0);
139
+ var cmdsize = data.readUInt16BE(2);
140
+ switch (command) {
141
+ case 1:// Key Events, forward to agent
142
+ //console.log('Viewer-Keys');
143
+ break;
144
+ case 2:// Mouse events, forward to agent
145
+ //console.log('Viewer-Mouse');
146
+ break;
147
+ case 5:// Compression
148
+ if (data.length < 10) return;
149
+ //viewer.imageType = data[4]; // Always 1=JPEG
150
+ viewer.imageCompression = data[5];
151
+ viewer.imageScaling = data.readUInt16BE(6);
152
+ viewer.imageFrameRate = data.readUInt16BE(8);
153
+ //console.log('Viewer-Compression', viewer.imageCompression, viewer.imageScaling, viewer.imageFrameRate);
154
+
155
+ // See if this changes anything
156
+ var viewersimageCompression = null;
157
+ var viewersimageScaling = null;
158
+ var viewersimageFrameRate = null;
159
+ for (var i in obj.viewers) {
160
+ if ((viewersimageCompression == null) || (obj.viewers[i].imageCompression > viewersimageCompression)) { viewersimageCompression = obj.viewers[i].imageCompression; };
161
+ if ((viewersimageScaling == null) || (obj.viewers[i].imageScaling > viewersimageScaling)) { viewersimageScaling = obj.viewers[i].imageScaling; };
162
+ if ((viewersimageFrameRate == null) || (obj.viewers[i].imageFrameRate < viewersimageFrameRate)) { viewersimageFrameRate = obj.viewers[i].imageFrameRate; };
163
+ }
164
+ if ((obj.imageCompression != viewersimageCompression) || (obj.imageScaling != viewersimageScaling) || (obj.imageFrameRate != viewersimageFrameRate)) {
165
+ // Update and send to agent new compression settings
166
+ obj.imageCompression = viewersimageCompression;
167
+ obj.imageScaling = viewersimageScaling;
168
+ obj.imageFrameRate = viewersimageFrameRate
169
+ console.log('Send-Agent-Compression', obj.imageCompression, obj.imageScaling, obj.imageFrameRate);
170
+ // obj.send(String.fromCharCode(0x00, 0x05, 0x00, 0x0A, type, obj.CompressionLevel) + obj.shortToStr(obj.ScalingLevel) + obj.shortToStr(obj.FrameRateTimer));
171
+ }
172
+ break;
173
+ case 6:// Refresh, handle this on the server
174
+ console.log('Viewer-Refresh');
175
+ viewer.dataPtr = obj.firstData; // Start over
176
+ // TODO
177
+ break;
178
+ case 8:// Pause and unpause
179
+ if (data.length != 5) break;
180
+ var pause = data[4]; // 0 = Unpause, 1 = Pause
181
+ if (viewer.desktopPaused == (pause == 1)) break;
182
+ viewer.desktopPaused = (pause == 1);
183
+ //console.log('Viewer-' + ((pause == 1)?'Pause':'UnPause'));
184
+ var viewersPaused = true;
185
+ for (var i in obj.viewers) { if (obj.viewers[i].desktopPaused == false) { viewersPaused = false; }; }
186
+ if (viewersPaused != obj.desktopPaused) {
187
+ obj.desktopPaused = viewersPaused;
188
+ console.log('Send-Agent-' + ((viewersPaused == 1)?'Pause':'UnPause'));
189
+ // TODO
190
+ }
191
+ if (viewer.desktopPaused == false) {
192
+ viewer.dataPtr = obj.firstData; // Start over
193
+ // TODO
194
+ }
195
+ break;
196
+ case 10:// CTRL-ALT-DEL, forward to agent
197
+ break;
198
+ case 14:// Touch setup
199
+ break;
200
+ default:
201
+ console.log('Un-handled viewer command: ' + command);
202
+ break;
203
+ }
204
+ }
205
+
206
+ // Process incoming agent data
207
obj.processAgentData = function (data) {
33
- if ((typeof data != 'object') || (data.length < 4)) return;
208
+ //console.log('AgentData', data.length);
209
+ if ((typeof data != 'object') || (data.length < 4)) return; // Ignore all control traffic for now (WebRTC)
210
var command = data.readUInt16BE(0);
211
var cmdsize = data.readUInt16BE(2);
212
if ((command == 27) && (cmdsize == 8)) {
@@ -89,6 +265,8 @@ function CreateDesktopDecoder() {
265
//console.log('list', xx);
266
//console.log('images', obj.imagesCount);
267
268
+ break;
269
+ case 4: // Tile Copy, do nothing.
270
break;
271
case 7: // Screen Size, clear the screen state and compute the tile count
272
obj.counter++;
@@ -111,13 +289,45 @@ function CreateDesktopDecoder() {
289
obj.lastData = obj.counter;
290
291
// Add viewers must be set to start at "obj.counter"
114
- // TODO
292
+ for (var i in obj.viewers) {
293
+ obj.viewers[i].dataPtr = obj.counter;
294
+ // TODO
295
+ }
296
297
//console.log("ScreenSize", obj.width, obj.height, obj.swidth, obj.sheight, obj.swidth * obj.sheight);
298
+ break;
299
+ case 11: // GetDisplays
300
+ // Store and send this to all viewers right away
301
+ obj.lastDisplayInfoData = data;
302
+ // TODO
303
+
304
+ break;
305
+ case 14: // KVM_INIT_TOUCH
306
+ break;
307
+ case 15: // KVM_TOUCH
308
+ break;
309
+ case 16: // MNG_KVM_CONNECTCOUNT
310
+ break;
311
+ case 17: // MNG_KVM_MESSAGE
312
+
313
+ // Send this to all viewers right away
314
+ // TODO
315
+
316
+ break;
317
+ case 65: // Alert
318
+
319
+ // Send this to all viewers right away
320
+ // TODO
321
+
322
+ break;
323
+ case 88: // MNG_KVM_MOUSE_CURSOR
324
+
325
+ // Send this to all viewers right away
326
+ // TODO
327
+
328
break;
329
default:
119
- // 11, 14, 88
120
- console.log('Un-handled command: ' + command);
330
+ console.log('Un-handled agent command: ' + command);
331
break;
332
}
333
}
@@ -323,10 +533,9 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie
533
else if ((typeof parent.parent.args.agentpong == 'number') && (obj.pongtimer == null)) { obj.pongtimer = setInterval(sendPong, parent.parent.args.agentpong * 1000); }
534
535
// Setup the desktop decoder
326
- var agentPeer = null;
327
- if (obj.req.query.browser == null) { agentPeer = obj; }
328
- else if (obj.peer.req.query.browser == null) { agentPeer = obj.peer; }
329
- if (agentPeer != null) { agentPeer.deskDecoder = CreateDesktopDecoder(); }
536
+ obj.deskDecoder = obj.peer.deskDecoder = CreateDesktopDecoder();
537
+ obj.deskDecoder.addPeer(obj);
538
+ obj.deskDecoder.addPeer(obj.peer);
539
540
// Setup session recording
541
var sessionUser = obj.user;
@@ -425,7 +634,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie
634
// When data is received from the mesh relay web socket
635
ws.on('message', function (data) {
636
// If this data was received by the agent, decode it.
428
- if (this.me.deskDecoder != null) { this.me.deskDecoder.processAgentData(data); }
637
+ if (this.me.deskDecoder != null) { this.me.deskDecoder.processData(this.me, data); }
638
639
//console.log(typeof data, data.length);
640
if (this.peer != null) {
package.json
+1
-2
@@ -1,6 +1,6 @@
1
{
2
"name": "meshcentral",
3
- "version": "0.5.13",
3
+ "version": "0.5.14",
4
"keywords": [
5
"Remote Management",
6
"Intel AMT",
@@ -40,7 +40,6 @@
40
"express-handlebars": "^3.1.0",
41
"express-ws": "^4.0.0",
42
"ipcheck": "^0.1.0",
43
- "minify-js": "0.0.4",
43
"minimist": "^1.2.0",
44
"multiparty": "^4.2.1",
45
"nedb": "^1.8.0",
public/scripts/agent-desktop-0.0.2.js
+1
-1
@@ -39,7 +39,7 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
39
obj.oldie = false;
40
obj.CompressionLevel = 50;
41
obj.ScalingLevel = 1024;
42
- obj.FrameRateTimer = 50;
42
+ obj.FrameRateTimer = 100;
43
obj.FirstDraw = false;
44
45
obj.ScreenWidth = 960;
translate/translate.json
+1
-1
@@ -29810,4 +29810,4 @@
29810
]
29811
}
29812
]
29813
-}
29813
+}
\ No newline at end of file
views/default.handlebars
+5
-5
@@ -1150,7 +1150,7 @@
1150
// Process server-side web state
1151
var webState = '{{{webstate}}}';
1152
if (webState != '') { webState = JSON.parse(decodeURIComponent(webState)); }
1153
- for (var i in webState) { localStorage.setItem(i, webState[i]); }
1153
+ for (var i in webState) { if (i != 'desktopsettings') { localStorage.setItem(i, webState[i]); } }
1154
if (!webState.loctag) { try { delete localStorage.removeItem('loctag'); } catch (ex) { } }
1155
1156
var args, urlargs;
@@ -3404,7 +3404,7 @@
3404
QV('d7meshkvm', true);
3405
d7bitmapquality.value = multidesktopsettings.quality;
3406
d7bitmapscaling.value = multidesktopsettings.scaling;
3407
- if (multidesktopsettings.framerate) { d7framelimiter.value = multidesktopsettings.framerate; } else { d7framelimiter.value = 1000; }
3407
+ if (multidesktopsettings.framerate) { d7framelimiter.value = multidesktopsettings.framerate; } else { d7framelimiter.value = 100; }
3408
setDialogMode(7, "Remote Desktop Settings", 3, showMultiDesktopSettingsChanged);
3409
}
3410
@@ -3447,7 +3447,7 @@
3447
//desk.onConsoleMessageChange = function () { console.log('CONSOLEMSG:', desk.consoleMessage); }
3448
desk.m.CompressionLevel = multidesktopsettings.quality;
3449
desk.m.ScalingLevel = multidesktopsettings.scaling;
3450
- desk.m.FrameRateTimer = multidesktopsettings.framerate;
3450
+ if (multidesktopsettings.framerate) { desk.m.FrameRateTimer = multidesktopsettings.framerate; }
3451
//desk.m.onDisplayinfo = deskDisplayInfo;
3452
//desk.m.onScreenSizeChange = deskAdjust;
3453
if (debugmode > 0) { desk.m.onScreenSizeChange = mdeskAdjust; } // Multi-Desktop Adjust
@@ -5931,7 +5931,7 @@
5931
}
5932
desktop.m.CompressionLevel = desktopsettings.quality; // Number from 1 to 100. 50 or less is best.
5933
desktop.m.ScalingLevel = desktopsettings.scaling;
5934
- desktop.m.FrameRateTimer = desktopsettings.framerate;
5934
+ if (desktopsettings.framerate) { desktop.m.FrameRateTimer = desktopsettings.framerate; }
5935
desktop.m.onDisplayinfo = deskDisplayInfo;
5936
desktop.m.onScreenSizeChange = deskAdjust;
5937
desktop.Start(desktopNode._id);
@@ -6077,7 +6077,7 @@
6077
d7bitmapquality.value = 40; // Default value
6078
if (ops.indexOf(parseInt(desktopsettings.quality)) >= 0) { d7bitmapquality.value = desktopsettings.quality; }
6079
d7bitmapscaling.value = desktopsettings.scaling;
6080
- if (desktopsettings.framerate) { d7framelimiter.value = desktopsettings.framerate; }
6080
+ if (desktopsettings.framerate) { d7framelimiter.value = desktopsettings.framerate; } else { d7framelimiter.value = 100; }
6081
if (desktopsettings.localkeymap) { d7localKeyMap.checked = desktopsettings.localkeymap; }
6082
QV('deskFocusBtn', (desktop != null) && (desktop.contype == 2) && (desktop.state != 0) && (desktopsettings.showfocus));
6083
}