UNPKG

meshcentral

Version:

Web based remote computer management server

1 lines 2.6 kB
function CreateWsmanComm(){var s={PendingAjax:[],ActiveAjaxCount:0,MaxActiveAjaxCount:1,FailAllError:0,digest:null,RequestCount:0};return 1==arguments.length?(s.host=arguments[0].host,s.port=arguments[0].port,s.authToken=arguments[0].authToken,s.tls=arguments[0].tls):(s.host=arguments[0],s.port=arguments[1],s.user=arguments[2],s.pass=arguments[3],s.tls=arguments[4]),s.PerformAjax=function(t,e,r,o,a,n){(0==s.ActiveAjaxCount||s.ActiveAjaxCount<s.MaxActiveAjaxCount&&null!=s.challengeParams)&&0==s.PendingAjax.length?s.PerformAjaxEx(t,e,r,a,n):1==o?s.PendingAjax.unshift([t,e,r,a,n]):s.PendingAjax.push([t,e,r,a,n])},s.PerformNextAjax=function(){var t;s.MaxActiveAjaxCount<=s.ActiveAjaxCount||0==s.PendingAjax.length||(t=s.PendingAjax.shift(),s.PerformAjaxEx(t[0],t[1],t[2],t[3],t[4]),s.PerformNextAjax())},s.PerformAjaxEx=function(e,r,o,t,a){var n;if(0==s.FailAllError)return e=e||"",1&globalDebugFlags&&console.log("SEND: "+e+"\r\n\r\n"),null==s.digest&&(s.digest=s.authToken?require("http-digest").create({authToken:s.authToken}):require("http-digest").create(s.user,s.pass),s.digest.http=require("http")),n=s.digest.request({delayWrite:!0,protocol:1==s.tls?"https:":"http:",method:"POST",host:s.host,path:"/wsman",port:s.port,rejectUnauthorized:!1,checkServerIdentity:function(t){}}),1&globalDebugFlags&&console.log("Request "+s.RequestCount++),n.on("error",function(t){s.gotNextMessagesError({status:600,error:""+t},"error",null,[e,r,o])}),n.on("response",function(t){1&globalDebugFlags&&console.log("Response: "+t.statusCode),200!=t.statusCode?(1&globalDebugFlags&&console.log("ERR:"+JSON.stringify(t)),s.gotNextMessagesError({status:t.statusCode},"error",null,[e,r,o])):(t.acc="",t.on("data",function(t){this.acc+=t}),t.on("end",function(){s.gotNextMessages(t.acc,"success",{status:t.statusCode},[e,r,o])}))}),n.end(e),s.ActiveAjaxCount++,n;999!=s.FailAllError&&s.gotNextMessagesError({status:s.FailAllError},"error",null,[e,r,o])},s.pendingAjaxCall=[],s.gotNextMessages=function(t,e,r,o){s.ActiveAjaxCount--,999!=s.FailAllError&&(1&globalDebugFlags&&console.log("RECV: "+t+"\r\n\r\n"),0!=s.FailAllError?o[1](null,s.FailAllError,o[2]):200!=r.status?o[1](null,r.status,o[2]):(o[1](t,200,o[2]),s.PerformNextAjax()))},s.gotNextMessagesError=function(t,e,r,o){s.ActiveAjaxCount--,999!=s.FailAllError&&(0!=s.FailAllError?o[1](null,s.FailAllError,o[2]):(999!=s.FailAllError&&o[1]({Header:{HttpError:t.status,error:t.error}},t.status,o[2]),s.PerformNextAjax()))},s.CancelAllQueries=function(t){for(;0<s.PendingAjax.length;){var e=s.PendingAjax.shift();e[1](null,t,e[2])}},s}module.exports=CreateWsmanComm