2021-03-03 05:48:36 +03:00
|
|
|
var CreateWsmanComm=function(e,t,n,r,a){var s={};function o(){for(i in s.socketState=2,s.pendingAjaxCall)s.sendRequest(s.pendingAjaxCall[i][0],s.pendingAjaxCall[i][3],s.pendingAjaxCall[i][4])}function c(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 a=-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(a=parseInt(s.socketXHeader["content-length"]),s.socketAccumulator.length<a)return;var o=s.socketAccumulator.substring(0,a);s.socketAccumulator=s.socketAccumulator.substring(a),s.socketData=o,a=0}else{n=s.socketAccumulator.indexOf("\r\n");if(n<0)return;if(a=parseInt(s.socketAccumulator.substring(0,n),16),isNaN(a))return void(s.websocket&&s.websocket.close());if(s.socketAccumulator.length<n+2+a+2)return;o=s.socketAccumulator.substring(n+2,n+2+a);s.socketAccumulator=s.socketAccumulator.substring(n+2+a+2),s.socketData+=o}else a=0;0==a&&(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,a=s.challengeParams.qop.split(",");for(r in a)a[r]=a[r].trim();0<=a.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 l(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=a,s.tlsv1only=1,s.cnonce=Math.random().toString(36).substring(7),s.PerformAjax=function(e,t,n,r,a,o){s.ActiveAjaxCount<s.MaxActiveAjaxCount&&0==s.PendingAjax.length?s.PerformAjaxEx(e,t,n,a,o):1==r?s.PendingAjax.unshift([e,t,n,a,o]):s.PendingAjax.push([e,t,n,a,o])},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,a){if(0==s.FailAllError)return e=e||"",s.ActiveAjaxCount++,s.PerformAjaxExNodeJS(e,t,n,r,a);s.gotNextMessagesError({status:s.FailAllError},"error",null,[e,t,n,r,a])},s.pendingAjaxCall=[],s.PerformAjaxExNodeJS=function(e,t,n,r,a){s.PerformAjaxExNodeJS2(e,t,n,r,a,3)},s.PerformAjaxExNodeJS2=function(e,t,n,r,a,o){if(o<=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,a]),void s.PerformNextAjax();s.pendingAjaxCall.push([e,t,n,r,a,o]),0==s.socketState?s.xxConnectHttpSocket():2==s.socketState&&s.sendRequest(e,r,a)},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.nonce+":"+s.noncecounter+":"+s.cnonce+":"+s.challengeParams.qop+":"+hex_md5
|