mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-03-09 15:40:18 +00:00
Improved MeshCmd, added audit log support.
This commit is contained in:
parent
b831f097b8
commit
2f3a02d1fd
10 changed files with 107 additions and 78 deletions
|
@ -290,11 +290,8 @@ function lme_heci(options) {
|
|||
var notify = null;
|
||||
try { notify = xmlParser.ParseWsman(httpData); } catch (e) { }
|
||||
|
||||
// Translate the event
|
||||
var notifyString = _lmsNotifyToString(notify);
|
||||
|
||||
// Event the http data
|
||||
if (notify != null) { this.LMS.emit('notify', notify, channel.options, notifyString); }
|
||||
if (notify != null) { this.LMS.emit('notify', notify, channel.options, _lmsNotifyToString(notify), _lmsNotifyToCode(notify)); }
|
||||
|
||||
// Send channel close
|
||||
var buffer = Buffer.alloc(5);
|
||||
|
@ -437,6 +434,13 @@ function parseHttp(httpData) {
|
|||
return null;
|
||||
}
|
||||
|
||||
function _lmsNotifyToCode(notify) {
|
||||
if ((notify == null) || (notify.Body == null) || (notify.Body.MessageID == null)) return null;
|
||||
var msgid = notify.Body.MessageID;
|
||||
try { msgid += '-' + notify.Body.MessageArguments[0]; } catch (e) { }
|
||||
return msgid;
|
||||
}
|
||||
|
||||
function _lmsNotifyToString(notify) {
|
||||
if ((notify == null) || (notify.Body == null) || (notify.Body.MessageID == null)) return null;
|
||||
var msgid = notify.Body.MessageID;
|
||||
|
@ -520,7 +524,7 @@ var lmsEvents = {
|
|||
"iAMT0055-0": "User Notification Alert - Provisioning state change notification - Pre-configuration.",
|
||||
"iAMT0055-1": "User Notification Alert - Provisioning state change notification - In configuration.",
|
||||
"iAMT0055-2": "User Notification Alert - Provisioning state change notification - Post-configuration.",
|
||||
"iAMT0055-3": "User Notification Alert - Provisioning state change notification - unprovision process has started.",
|
||||
"iAMT0055-3": "User Notification Alert - Provisioning state change notification - Unprovision process has started.",
|
||||
"iAMT0056": "User Notification Alert - System Defense change notification.",
|
||||
"iAMT0057": "User Notification Alert - Network State change notification.",
|
||||
"iAMT0058": "User Notification Alert - Remote Access change notification.",
|
||||
|
|
|
@ -18,24 +18,20 @@ var Q = require('queue');
|
|||
function amt_heci() {
|
||||
var emitterUtils = require('events').inherits(this);
|
||||
emitterUtils.createEvent('error');
|
||||
emitterUtils.createEvent('connect');
|
||||
|
||||
var heci = require('heci');
|
||||
|
||||
this._ObjectID = "pthi";
|
||||
this._rq = new Q();
|
||||
this._setupPTHI = function _setupPTHI()
|
||||
{
|
||||
this._setupPTHI = function _setupPTHI() {
|
||||
this._amt = heci.create();
|
||||
this._amt.BiosVersionLen = 65;
|
||||
this._amt.UnicodeStringLen = 20;
|
||||
|
||||
this._amt.Parent = this;
|
||||
this._amt.on('error', function _amtOnError(e) { this.Parent.emit('error', e); });
|
||||
this._amt.on('connect', function _amtOnConnect()
|
||||
{
|
||||
this.on('data', function _amtOnData(chunk)
|
||||
{
|
||||
this._amt.on('connect', function _amtOnConnect() {
|
||||
this.on('data', function _amtOnData(chunk) {
|
||||
//console.log("Received: " + chunk.length + " bytes");
|
||||
var header = this.Parent.getCommand(chunk);
|
||||
//console.log("CMD = " + header.Command + " (Status: " + header.Status + ") Response = " + header.IsResponse);
|
||||
|
@ -47,14 +43,12 @@ function amt_heci() {
|
|||
params.unshift(header);
|
||||
callback.apply(this.Parent, params);
|
||||
|
||||
if(this.Parent._rq.isEmpty())
|
||||
{
|
||||
if (this.Parent._rq.isEmpty()) {
|
||||
// No More Requests, we can close PTHI
|
||||
this.Parent._amt.disconnect();
|
||||
this.Parent._amt = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
// Send the next request
|
||||
this.write(this.Parent._rq.peekQueue().send);
|
||||
}
|
||||
|
@ -79,10 +73,9 @@ function amt_heci() {
|
|||
var header = Buffer.from('010100000000000000000000', 'hex');
|
||||
header.writeUInt32LE(arguments[0] | 0x04000000, 4);
|
||||
header.writeUInt32LE(arguments[1] == null ? 0 : arguments[1].length, 8);
|
||||
this._rq.enQueue({ cmd: arguments[0], func: arguments[2], optional: args , send: (arguments[1] == null ? header : Buffer.concat([header, arguments[1]]))});
|
||||
this._rq.enQueue({ cmd: arguments[0], func: arguments[2], optional: args, send: (arguments[1] == null ? header : Buffer.concat([header, arguments[1]])) });
|
||||
|
||||
if(!this._amt)
|
||||
{
|
||||
if (!this._amt) {
|
||||
this._setupPTHI();
|
||||
this._amt.connect(heci.GUIDS.AMT, { noPipeline: 1 });
|
||||
}
|
||||
|
@ -94,7 +87,7 @@ function amt_heci() {
|
|||
this.sendCommand(26, null, function (header, fn, opt) {
|
||||
if (header.Status == 0) {
|
||||
var i, CodeVersion = header.Data, val = { BiosVersion: CodeVersion.slice(0, this._amt.BiosVersionLen), Versions: [] }, v = CodeVersion.slice(this._amt.BiosVersionLen + 4);
|
||||
for (i = 0; i < CodeVersion.readUInt32LE(this._amt.BiosVersionLen) ; ++i) {
|
||||
for (i = 0; i < CodeVersion.readUInt32LE(this._amt.BiosVersionLen); ++i) {
|
||||
val.Versions[i] = { Description: v.slice(2, v.readUInt16LE(0) + 2).toString(), Version: v.slice(4 + this._amt.UnicodeStringLen, 4 + this._amt.UnicodeStringLen + v.readUInt16LE(2 + this._amt.UnicodeStringLen)).toString() };
|
||||
v = v.slice(4 + (2 * this._amt.UnicodeStringLen));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue