Intel AMT KVM and management fixes.
Ylian Saint-Hilaire committed
Jan 31, 2022 at 18:35 UTC
c492f2366e0df0e3b8aadf0d267368552afb8e30
3 files changed
+10
-7
amtmanager.js
+5
-2
@@ -108,7 +108,7 @@ module.exports.CreateAmtManager = function (parent) {
108
function addAmtDevice(dev) {
109
var devices = obj.amtDevices[dev.nodeid];
110
if (devices == null) { obj.amtDevices[dev.nodeid] = [dev]; return true; }
111
- if (devices.indexOf(dev) >= 0) { return false; } // This device is already in the list
111
+ if (devices.indexOf(dev) >= 0) return false; // This device is already in the list
112
devices.push(dev); // Add the device to the list
113
return true;
114
}
@@ -725,7 +725,10 @@ module.exports.CreateAmtManager = function (parent) {
725
if ((typeof dev.aquired.state == 'number') && (dev.aquired.state != device.intelamt.state)) { change = 1; log = 1; device.intelamt.state = dev.aquired.state; changes.push('AMT state'); }
726
727
// Intel AMT Warning Flags: 1 = Unknown credentials, 2 = Realm Mismatch, 4 = TLS Cert Mismatch, 8 = Trying credentials
728
- if ((typeof dev.aquired.warn == 'number')) { if ((dev.aquired.warn == 0) && (device.intelamt.warn != null)) { delete device.intelamt.warn; change = 1; } else if (dev.aquired.warn != device.intelamt.warn) { device.intelamt.warn = dev.aquired.warn; change = 1; } }
728
+ if ((typeof dev.aquired.warn == 'number')) {
729
+ if ((dev.aquired.warn == 0) && (device.intelamt.warn != null)) { delete device.intelamt.warn; change = 1; }
730
+ else if ((dev.aquired.warn != 0) && (dev.aquired.warn != device.intelamt.warn)) { device.intelamt.warn = dev.aquired.warn; change = 1; }
731
+ }
732
733
// Update Intel AMT flags if needed
734
// dev.aquired.controlMode // 1 = CCM, 2 = ACM
meshuser.js
+1
-1
@@ -2939,7 +2939,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2939
}
2940
if (command.desc != null && (command.desc != node.desc)) { change = 1; node.desc = command.desc; changes.push('description'); }
2941
if (command.intelamt != null) {
2942
- if ((parent.parent.amtManager == null) || (node.intelamt.user == null) || (node.intelamt.user == '') || ((node.intelamt.warn != null) && (((node.intelamt.warn) & 9) != 0))) { // Only allow changes to Intel AMT credentials if AMT manager is not running, or manager warned of unknown/trying credentials.
2942
+ if ((parent.parent.amtManager == null) || (node.intelamt.pass == null) || (node.intelamt.pass == '') || ((node.intelamt.warn != null) && (((node.intelamt.warn) & 9) != 0))) { // Only allow changes to Intel AMT credentials if AMT manager is not running, or manager warned of unknown/trying credentials.
2943
if ((command.intelamt.user != null) && (command.intelamt.pass != null) && ((command.intelamt.user != node.intelamt.user) || (command.intelamt.pass != node.intelamt.pass))) {
2944
change = 1;
2945
node.intelamt.user = command.intelamt.user;
public/scripts/amt-desktop-0.0.2.js
+4
-4
@@ -818,7 +818,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) {
818
if ((d.length >= 16) && (d.substring(0, 15) == '\0KvmDataChannel')) {
819
if (obj.kvmDataSupported == false) { obj.kvmDataSupported = true; /*console.log('KVM Data Channel Supported.');*/ }
820
if (((obj.onKvmDataAck == -1) && (d.length == 16)) || (d.charCodeAt(15) != 0)) { obj.onKvmDataAck = true; }
821
- if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-DataChannel-Recv(' + (d.length - 16) + '): ' + d.substring(16)); }
821
+ try { if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-DataChannel-Recv(' + (d.length - 16) + '): ' + d.substring(16)); } } catch (ex) { }
822
if (d.length >= 16) { obj.onKvmData(d.substring(16)); } // Event the data and ack
823
if ((obj.onKvmDataAck == true) && (obj.onKvmDataPending.length > 0)) { obj.sendKvmData(obj.onKvmDataPending.shift()); } // Send pending data
824
} else if ((d.length >= 13) && (d.substring(0, 11) == '\0KvmExtCmd\0')) {
@@ -834,7 +834,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) {
834
if (cmd == 4) { obj.sendKvmExtCmd(3); }
835
} else {
836
console.log('Got KVM clipboard data:', d);
837
- if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-ClipBoard-Recv(' + d.length + '): ' + rstr2hex(d) + ', ' + d); }
837
+ try { if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-ClipBoard-Recv(' + d.length + '): ' + rstr2hex(d) + ', ' + d); } } catch (ex) { }
838
}
839
}
840
// ###END###{DesktopInband}
@@ -852,7 +852,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) {
852
if (obj.onKvmDataAck !== true) {
853
obj.onKvmDataPending.push(x);
854
} else {
855
- if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-DataChannel-Send(' + x.length + '): ' + x); }
855
+ try { if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-DataChannel-Send(' + x.length + '): ' + x); } } catch (ex) { }
856
x = '\0KvmDataChannel\0' + x;
857
obj.send(String.fromCharCode(6, 0, 0, 0) + IntToStr(x.length) + x);
858
obj.onKvmDataAck = false;
@@ -867,7 +867,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) {
867
868
// ###BEGIN###{DesktopClipboard}
869
obj.sendClipboardData = function (x) {
870
- if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-ClipBoard-Send(' + x.length + '): ' + rstr2hex(x) + ', ' + x); }
870
+ try { if (urlvars && urlvars['kvmdatatrace']) { console.log('KVM-ClipBoard-Send(' + x.length + '): ' + rstr2hex(x) + ', ' + x); } } catch (ex) { }
871
obj.send(String.fromCharCode(6, 0, 0, 0) + IntToStr(x.length) + x);
872
}
873
// ###END###{DesktopClipboard}