Desktop multip-lexor fixes.
Ylian Saint-Hilaire committed
Apr 28, 2020 at 13:00 UTC
366ccff63bca0a40e5ba46877870baa405737d0e
2 files changed
+8
-2
meshdesktopmultiplex.js
+7
-1
@@ -461,6 +461,7 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
461
462
switch (command) {
463
case 3: // Tile, check dimentions and store
464
+ if (data.length < 10) break;
465
var x = data.readUInt16BE(4), y = data.readUInt16BE(6);
466
var dimensions = require('image-size')(data.slice(8));
467
var sx = (x / 16), sy = (y / 16), sw = (dimensions.width / 16), sh = (dimensions.height / 16);
@@ -475,7 +476,7 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
476
obj.imagesCount++;
477
if (obj.imagesCount == 2000000000) { obj.imagesCount = 1; } // Loop the counter if needed
478
478
- //console.log('Adding Image ' + obj.counter);
479
+ //console.log('Adding Image ' + obj.counter, x, y, dimensions.width, dimensions.height);
480
481
var skips = [];
482
@@ -519,6 +520,8 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
520
case 4: // Tile Copy, do nothing.
521
break;
522
case 7: // Screen Size, clear the screen state and compute the tile count
523
+ if (data.length < 8) break;
524
+ if ((obj.width === data.readUInt16BE(4)) && (obj.height === data.readUInt16BE(6))) break; // Same screen size as before, skip this.
525
obj.counter++;
526
obj.lastScreenSizeCmd = data;
527
obj.lastScreenSizeCounter = obj.counter;
@@ -552,6 +555,9 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
555
obj.lastDisplayInfoData = data;
556
obj.sendToAllViewers(data);
557
break;
558
+ case 12: // SetDisplay
559
+ obj.sendToAllViewers(data);
560
+ break;
561
case 14: // KVM_INIT_TOUCH
562
break;
563
case 15: // KVM_TOUCH
translate/translate.json
+1
-1
@@ -29855,4 +29855,4 @@
29855
]
29856
}
29857
]
29858
-}
29858
+}
\ No newline at end of file