UNPKG

meshcentral

Version:

Web based remote computer management server

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