meshcentral
Version:
Web based remote computer management server
1 lines • 3.73 kB
JavaScript
function AmtManager(l,n,e){function t(n){e&&s("amt-manager: "+n+"<br />")}var s=function(n){l.SendCommand({action:"msg",type:"console",value:n})},i=null,a=0,o=null,r=this,u=(require("events").EventEmitter.call(r,!0).createEvent("stateChange_LMS").createEvent("portBinding_LMS"),r._lmsstate=0,r._mapping=[],r.on("newListener",function(n,e){"portBinding_LMS"==n&&e.call(this,this._mapping)}),Object.defineProperty(r,"lmsstate",{get:function(){return this._lmsstate},set:function(n){this._lmsstate!=n&&(this._lmsstate=n,this.emit("stateChange_LMS",n))}}),r.state=0,r.onStateChange=null,r.setDebug=function(n){e=n},0),c=(r.reset=function(){++u,r.amtMei=null,o=i=null,a=0,r.state=0,r.lmsstate=0;try{var n=require("amt-mei");r.amtMei=i=new n,i.on("error",function(n){t("MEI error"),i=null,a=-1,r.state=-1,null!=r.onStateChange&&r.onStateChange(a)}),i.getVersion(function(n){null==n?(r.state=a=-1,null!=r.onStateChange&&r.onStateChange(a),u<10&&setTimeout(r.reset,1e4)):(r.state=a=2,u=0,null!=r.onStateChange&&r.onStateChange(a),r.lmsreset())})}catch(n){t("MEI exception: "+n),i=null,a=-1,r.state=-1}},{});r.getMeiState=function(e,s){if(null==i||a<2)null!=s&&s(null);else try{var o={"core-ver":1,OsHostname:require("os").hostname(),Flags:0};null!=c.MeiVersion?o.MeiVersion=c.MeiVersion:i.getProtocolVersion(function(n){null!=n&&(c.MeiVersion=o.MeiVersion=n)}),0!=(1&e)&&(null!=c.Versions?o.Versions=c.Versions:i.getVersion(function(n){if(n)for(var e in c.Versions=o.Versions={},n.Versions)o.Versions[n.Versions[e].Description]=n.Versions[e].Version})),i.getProvisioningMode(function(n){n&&(o.ProvisioningMode=n.mode)}),i.getProvisioningState(function(n){n&&(o.ProvisioningState=n.state,2!=n.state)&&i.stopConfiguration(function(){})}),i.getEHBCState(function(n){null!=n&&1==n.EHBC&&(o.Flags+=1)}),i.getControlMode(function(n){null!=n&&(1==n.controlMode&&(o.Flags+=2),2==n.controlMode)&&(o.Flags+=4)}),0!=(8&e)&&(i.getLanInterfaceSettings(0,function(n){if(n){o.net0=n;var e,t=require("os").networkInterfaces();for(e in t)for(var s in t[e])t[e][s].mac==n.mac&&null!=t[e][s].fqdn&&""!=t[e][s].fqdn&&(o.OsDnsSuffix=t[e][s].fqdn)}}),i.getLanInterfaceSettings(1,function(n){n&&(o.net1=n)})),null!=c.UUID?o.UUID=c.UUID:i.getUuid(function(n){null!=n&&null!=n.uuid&&(c.UUID=o.UUID=n.uuid)}),0!=(2&e)&&i.getLocalSystemAccount(function(n){null!=n&&n.user&&n.pass&&(o.OsAdmin={user:n.user,pass:n.pass})}),i.getDnsSuffix(function(n){null!=n&&(o.DnsSuffix=n),0==(4&e)&&null!=s&&s(o)}),0!=(4&e)&&i.getHashHandles(function(n){null!=n&&0<n.length?o.Hashes=[]:s(o);for(var e=n.length,t=0;t<n.length;++t)this.getCertHashEntry(n[t],function(n){o.Hashes.push(n),0==--e&&null!=s&&s(o)})})}catch(n){null!=s&&s(null)}};r.lmsreset=function(){r.lmsstate=0;try{var n=require("amt-lme");r.lmsstate=1,(o=new n).on("error",function(n){r.lmsstate=0,o=null,t("LMS error: "+n)}),o.on("connect",function(){r.lmsstate=2,t("LMS connected")}),o.on("bind",function(n){r._mapping=n,r.emit("portBinding_LMS",n)}),o.on("notify",function(n,e,t){if(null!=n&&null!=n.Body&&null!=n.Body.MessageID&&null!=n.Body.MessageArguments){var s=n.Body.MessageID,o=n.Body.MessageArguments[0],i=null;switch(s){case"iAMT0050":"48"==o?i="Intel® AMT Serial-over-LAN connected":"49"==o&&(i="Intel® AMT Serial-over-LAN disconnected");break;case"iAMT0052":"1"==o?i="Intel® AMT KVM connected":"2"==o&&(i="Intel® AMT KVM disconnected")}null!=i&&l.SendCommand({action:"msg",type:"notify",value:i,tag:"general",amtMessage:s})}})}catch(n){require("MeshAgent").SendCommand({action:"msg",type:"console",value:"ex: "+n}),r.lmsstate=-1,o=null}},r.startConfigurationHBased=function(n,e,t,s){null==i||a<2?null!=s&&s({status:-100}):i.startConfigurationHBased(n,e,t,s)}}module.exports=AmtManager