MeshCentral/public/scripts/amt-wsman-ws-0.2.0-min.js

1 line
6.2 KiB
JavaScript
Raw Normal View History

var CreateWsmanComm=function(e,t,n,r,o){var s={};function a(e){e="00000000"+e.toString(16);return e.substring(e.length-8)}function c(){for(i in s.socketState=2,s.pendingAjaxCall)s.sendRequest(s.pendingAjaxCall[i][0],s.pendingAjaxCall[i][3],s.pendingAjaxCall[i][4])}function l(e){for(s.socketAccumulator+=(e=new Uint8Array(e.data),String.fromCharCode.apply(null,e));;){if(0==s.socketParseState){var t,n=s.socketAccumulator.indexOf("\r\n\r\n");if(n<0)return;if(s.socketHeader=s.socketAccumulator.substring(0,n).split("\r\n"),null==s.amtVersion)for(var r in s.socketHeader)0==s.socketHeader[r].indexOf("Server: Intel(R) Active Management Technology ")&&(s.amtVersion=s.socketHeader[r].substring(46));for(r in s.socketAccumulator=s.socketAccumulator.substring(n+4),s.socketParseState=1,s.socketData="",s.socketXHeader={Directive:s.socketHeader[0].split(" ")},s.socketHeader)0!=r&&(t=s.socketHeader[r].indexOf(":"),s.socketXHeader[s.socketHeader[r].substring(0,t).toLowerCase()]=s.socketHeader[r].substring(t+2))}if(1==s.socketParseState){var o=-1;if(null==s.socketXHeader.connection||"close"!=s.socketXHeader.connection.toLowerCase()||null!=s.socketXHeader["transfer-encoding"]&&"chunked"==s.socketXHeader["transfer-encoding"].toLowerCase())if(null!=s.socketXHeader["content-length"]){if(o=parseInt(s.socketXHeader["content-length"]),s.socketAccumulator.length<o)return;var a=s.socketAccumulator.substring(0,o);s.socketAccumulator=s.socketAccumulator.substring(o),s.socketData=a,o=0}else{n=s.socketAccumulator.indexOf("\r\n");if(n<0)return;if(o=parseInt(s.socketAccumulator.substring(0,n),16),isNaN(o))return void(s.websocket&&s.websocket.close());if(s.socketAccumulator.length<n+2+o+2)return;a=s.socketAccumulator.substring(n+2,n+2+o);s.socketAccumulator=s.socketAccumulator.substring(n+2+o+2),s.socketData+=a}else o=0;0==o&&(function(e,t){var n=parseInt(e.Directive[1]);isNaN(n)&&(n=602);if(401==n&&++s.authcounter<3){if(s.challengeParams=s.parseDigest(e["www-authenticate"]),null!=s.challengeParams.qop){var r,o=s.challengeParams.qop.split(",");for(r in o)o[r]=o[r].trim();0<=o.indexOf("auth-int")?s.challengeParams.qop="auth-int":s.challengeParams.qop="auth"}}else{e=s.pendingAjaxCall.shift();s.authcounter=0,s.ActiveAjaxCount--,s.gotNextMessages(t,"success",{status:n},e),s.PerformNextAjax()}}(s.socketXHeader,s.socketData),s.socketParseState=0,s.socketHeader=null)}}}function u(e){var t,n;s.socketState=0,null!=s.socket&&(s.socket.close(),s.socket=null),0<s.pendingAjaxCall.length&&(n=(t=s.pendingAjaxCall.shift())[5],s.PerformAjaxExNodeJS2(t[0],t[1],t[2],t[3],t[4],--n))}return s.PendingAjax=[],s.ActiveAjaxCount=0,s.MaxActiveAjaxCount=1,s.FailAllError=0,s.challengeParams=null,s.noncecounter=1,s.authcounter=0,s.socket=null,s.socketState=0,s.host=e,s.port=t,s.user=n,s.pass=r,s.tls=o,s.tlsv1only=1,s.cnonce=Math.random().toString(36).substring(7),s.PerformAjax=function(e,t,n,r,o,a){s.ActiveAjaxCount<s.MaxActiveAjaxCount&&0==s.PendingAjax.length?s.PerformAjaxEx(e,t,n,o,a):1==r?s.PendingAjax.unshift([e,t,n,o,a]):s.PendingAjax.push([e,t,n,o,a])},s.PerformNextAjax=function(){var e;s.ActiveAjaxCount>=s.MaxActiveAjaxCount||0==s.PendingAjax.length||(e=s.PendingAjax.shift(),s.PerformAjaxEx(e[0],e[1],e[2],e[3],e[4]),s.PerformNextAjax())},s.PerformAjaxEx=function(e,t,n,r,o){if(0==s.FailAllError)return e=e||"",s.ActiveAjaxCount++,s.PerformAjaxExNodeJS(e,t,n,r,o);s.gotNextMessagesError({status:s.FailAllError},"error",null,[e,t,n,r,o])},s.pendingAjaxCall=[],s.PerformAjaxExNodeJS=function(e,t,n,r,o){s.PerformAjaxExNodeJS2(e,t,n,r,o,3)},s.PerformAjaxExNodeJS2=function(e,t,n,r,o,a){if(a<=0||0!=s.FailAllError)return s.ActiveAjaxCount--,999!=s.FailAllError&&s.gotNextMessages(null,"error",{status:0==s.FailAllError?408:s.FailAllError},[e,t,n,r,o]),void s.PerformNextAjax();s.pendingAjaxCall.push([e,t,n,r,o,a]),0==s.socketState?s.xxConnectHttpSocket():2==s.socketState&&s.sendRequest(e,r,o)},s.sendRequest=function(e,t,n){var r=(n=n||"POST")+" "+(t=t||"/wsman")+" HTTP/1.1\r\n";null!=s.challengeParams&&(n=hex_md5(hex_md5(s.user+":"+s.challengeParams.realm+":"+s.pass)+":"+s.challengeParams.no