mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-03-09 15:40:18 +00:00 
			
		
		
		
	Improved Korean, New MeshCommander
This commit is contained in:
		
							parent
							
								
									40abf105ab
								
							
						
					
					
						commit
						56192d51a3
					
				
					 66 changed files with 980 additions and 970 deletions
				
			
		
							
								
								
									
										2
									
								
								public/scripts/amt-desktop-0.0.2-min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/scripts/amt-desktop-0.0.2-min.js
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -67,7 +67,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) { | |||
|             obj.canvas.canvas.height = obj.rheight = obj.height = 400; | ||||
|             QS(obj.canvasid).cursor = 'default'; | ||||
|         } else { | ||||
|             QS(obj.canvasid).cursor = obj.showmouse ?'default':'none'; | ||||
|             QS(obj.canvasid).cursor = obj.showmouse ? 'default' : 'none'; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | @ -255,7 +255,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) { | |||
|                     // ###BEGIN###{Inflate}
 | ||||
|                     else { | ||||
|                         // This is compressed ZLib data, decompress and process it. (TODO: This need to be optimized, remove str/arr conversions)
 | ||||
|                         var str = obj.inflate.inflate(arrToStr(obj.acc.slice(ptr, ptr + datalen - dx))); | ||||
|                         var str = obj.inflate.inflate(arrToStr(new Uint8Array(obj.acc.buffer.slice(ptr, ptr + datalen - dx)))); | ||||
|                         if (str.length > 0) { _decodeLRE(strToArr(str), 0, x, y, width, height, s, str.length); } else { console.log("Invalid deflate data"); } | ||||
|                     } | ||||
|                     // ###END###{Inflate}
 | ||||
|  | @ -274,7 +274,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) { | |||
| 
 | ||||
|             //console.log('cmdsize', cmdsize);
 | ||||
|             if (cmdsize == 0) return; | ||||
|             if (cmdsize != obj.acc.byteLength) { obj.acc = obj.acc.slice(cmdsize); } else { obj.acc = null; } | ||||
|             if (cmdsize != obj.acc.byteLength) { obj.acc = new Uint8Array(obj.acc.buffer.slice(cmdsize)); } else { obj.acc = null; } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | @ -312,7 +312,7 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) { | |||
|             } else { | ||||
|                 for (i = 0; i < subencoding; i++) { palette[i] = data[ptr++]; } | ||||
|                 if (subencoding == 2) { br = 1; bm = 1; } else if (subencoding <= 4) { br = 2; bm = 3; } // Compute bits to read & bit mark
 | ||||
|                 while (rlecount < s && ptr < data.byteLength) { v = data[ptr++]; for (i = (8 - br) ; i >= 0; i -= br) { _setPixel8(palette[(v >> i) & bm], rlecount++); } } // Display all the bits
 | ||||
|                 while (rlecount < s && ptr < data.byteLength) { v = data[ptr++]; for (i = (8 - br); i >= 0; i -= br) { _setPixel8(palette[(v >> i) & bm], rlecount++); } } // Display all the bits
 | ||||
|             } | ||||
|             _putImage(obj.spare, x, y); | ||||
|         } | ||||
|  | @ -353,9 +353,9 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) { | |||
|         else if (subencoding > 129) { // Palette RLE encoded tile
 | ||||
|             // Read the palette
 | ||||
|             if (obj.bpp == 2) { | ||||
|                 for (i = 0; i < (subencoding - 128) ; i++) { palette[i] = data[ptr++] + (data[ptr++] << 8); } | ||||
|                 for (i = 0; i < (subencoding - 128); i++) { palette[i] = data[ptr++] + (data[ptr++] << 8); } | ||||
|             } else { | ||||
|                 for (i = 0; i < (subencoding - 128) ; i++) { palette[i] = data[ptr++]; } | ||||
|                 for (i = 0; i < (subencoding - 128); i++) { palette[i] = data[ptr++]; } | ||||
|             } | ||||
| 
 | ||||
|             // Decode RLE  on palette
 | ||||
|  | @ -568,10 +568,10 @@ var CreateAmtRemoteDesktop = function (divid, scrolldiv) { | |||
|             obj.ox = obj.mx; | ||||
|             obj.oy = obj.my; | ||||
|         } else { | ||||
|         // ###END###{DesktopFocus}
 | ||||
|             // ###END###{DesktopFocus}
 | ||||
|             // Request the entire screen
 | ||||
|             obj.send(String.fromCharCode(3, 1, 0, 0, 0, 0) + ShortToStr(obj.rwidth) + ShortToStr(obj.rheight)); // FramebufferUpdateRequest
 | ||||
|         // ###BEGIN###{DesktopFocus}
 | ||||
|             // ###BEGIN###{DesktopFocus}
 | ||||
|         } | ||||
|         // ###END###{DesktopFocus}
 | ||||
|     } | ||||
|  |  | |||
							
								
								
									
										2
									
								
								public/scripts/amt-redir-ws-0.1.0-min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/scripts/amt-redir-ws-0.1.0-min.js
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -100,7 +100,7 @@ var CreateAmtRedirect = function (module, authCookie) { | |||
|                     if (accArray.byteLength < 9 + authDataLen) return; | ||||
|                     var status = accArray[1], authType = accArray[4], authData = []; | ||||
|                     for (i = 0; i < authDataLen; i++) { authData.push(accArray[9 + i]); } | ||||
|                     var authDataBuf = accArray.slice(9, 9 + authDataLen); | ||||
|                     var authDataBuf = new Uint8Array(obj.acc.slice(9, 9 + authDataLen)); | ||||
|                     cmdsize = 9 + authDataLen; | ||||
|                     if (authType == 0) { | ||||
|                         // Query
 | ||||
|  | @ -122,12 +122,12 @@ var CreateAmtRedirect = function (module, authCookie) { | |||
| 
 | ||||
|                         // Realm
 | ||||
|                         var realmlen = authDataBuf[curptr]; | ||||
|                         var realm = arrToStr(authDataBuf.slice(curptr + 1, curptr + 1 + realmlen)); | ||||
|                         var realm = arrToStr(new Uint8Array(authDataBuf.buffer.slice(curptr + 1, curptr + 1 + realmlen))); | ||||
|                         curptr += (realmlen + 1); | ||||
| 
 | ||||
|                         // Nonce
 | ||||
|                         var noncelen = authDataBuf[curptr]; | ||||
|                         var nonce = arrToStr(authDataBuf.slice(curptr + 1, curptr + 1 + noncelen)); | ||||
|                         var nonce = arrToStr(new Uint8Array(authDataBuf.buffer.slice(curptr + 1, curptr + 1 + noncelen))); | ||||
|                         curptr += (noncelen + 1); | ||||
| 
 | ||||
|                         // QOP
 | ||||
|  | @ -138,7 +138,7 @@ var CreateAmtRedirect = function (module, authCookie) { | |||
|                         var extra = ''; | ||||
|                         if (authType == 4) { | ||||
|                             qoplen = authDataBuf[curptr]; | ||||
|                             qop = arrToStr(authDataBuf.slice(curptr + 1, curptr + 1 + qoplen)); | ||||
|                             qop = arrToStr(new Uint8Array(authDataBuf.buffer.slice(curptr + 1, curptr + 1 + qoplen))); | ||||
|                             curptr += (qoplen + 1); | ||||
|                             extra = snc + ':' + cnonce + ':' + qop + ':'; | ||||
|                         } | ||||
|  | @ -192,7 +192,7 @@ var CreateAmtRedirect = function (module, authCookie) { | |||
|                     if (accArray.byteLength < 10) break; | ||||
|                     var cs = (10 + (accArray[9] << 8) + accArray[8]); | ||||
|                     if (accArray.byteLength < cs) break; | ||||
|                     if (obj.m.ProcessBinaryData) { obj.m.ProcessBinaryData(accArray.slice(10, cs)); } else { obj.m.ProcessData(arrToStr(accArray.slice(10, cs))); } | ||||
|                     if (obj.m.ProcessBinaryData) { obj.m.ProcessBinaryData(new Uint8Array(accArray.buffer.slice(10, cs))); } else { obj.m.ProcessData(arrToStr(new Uint8Array(accArray.buffer.slice(10, cs)))); } | ||||
|                     cmdsize = cs; | ||||
|                     break; | ||||
|                 case 0x2B: // Keep alive message (43)
 | ||||
|  | @ -204,7 +204,9 @@ var CreateAmtRedirect = function (module, authCookie) { | |||
|                     obj.connectstate = 1; | ||||
|                     obj.m.Start(); | ||||
|                     // KVM traffic, forward rest of accumulator directly.
 | ||||
|                     if (accArray.byteLength > 8) { obj.m.ProcessData(accArray.slice(8)); } | ||||
|                     if (accArray.byteLength > 8) { | ||||
|                         if (obj.m.ProcessBinaryData) { obj.m.ProcessBinaryData(new Uint8Array(accArray.buffer.slice(8))); } else { obj.m.ProcessData(arrToStr(new Uint8Array(accArray.buffer.slice(8)))); } | ||||
|                     } | ||||
|                     cmdsize = accArray.byteLength; | ||||
|                     break; | ||||
|                 case 0xF0: | ||||
|  | @ -232,7 +234,7 @@ var CreateAmtRedirect = function (module, authCookie) { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     obj.send = function (x) { | ||||
|     obj.Send = obj.send = function (x) { | ||||
|         if (obj.socket == null || obj.connectstate != 1) return; | ||||
|         if (obj.protocol == 1) { obj.xxSend(String.fromCharCode(0x28, 0x00, 0x00, 0x00) + IntToStrX(obj.amtsequence++) + ShortToStrX(x.length) + x); } else { obj.xxSend(x); } | ||||
|     } | ||||
|  |  | |||
							
								
								
									
										2
									
								
								public/scripts/amt-wsman-ws-0.2.0-min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/scripts/amt-wsman-ws-0.2.0-min.js
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -27,6 +27,8 @@ var CreateWsmanComm = function (host, port, user, pass, tls) { | |||
|     // Private method
 | ||||
|     //obj.Debug = function (msg) { console.log(msg); }
 | ||||
| 
 | ||||
|     function arrToStr(arr) { return String.fromCharCode.apply(null, arr); } | ||||
| 
 | ||||
|     // Private method
 | ||||
|     //   pri = priority, if set to 1, the call is high priority and put on top of the stack.
 | ||||
|     obj.PerformAjax = function (postdata, callback, tag, pri, url, action) { | ||||
|  | @ -114,9 +116,8 @@ var CreateWsmanComm = function (host, port, user, pass, tls) { | |||
|         obj.socketHeader = null; | ||||
|         obj.socketData = ''; | ||||
|         obj.socketState = 1; | ||||
| 
 | ||||
|         console.log(obj.tlsv1only); | ||||
|         obj.socket = new WebSocket(window.location.protocol.replace('http', 'ws') + '//' + window.location.host + window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/')) + '/webrelay.ashx?p=1&host=' + obj.host + '&port=' + obj.port + '&tls=' + obj.tls + '&tlsv1only=' + obj.tlsv1only + ((user == '*') ? '&serverauth=1' : '') + ((typeof pass === 'undefined') ? ('&serverauth=1&user=' + user) : '')); // The "p=1" indicates to the relay that this is a WSMAN session
 | ||||
|         obj.socket.binaryType = 'arraybuffer'; | ||||
|         obj.socket.onopen = _OnSocketConnected; | ||||
|         obj.socket.onmessage = _OnMessage; | ||||
|         obj.socket.onclose = _OnSocketClosed; | ||||
|  | @ -129,60 +130,17 @@ var CreateWsmanComm = function (host, port, user, pass, tls) { | |||
|         for (i in obj.pendingAjaxCall) { obj.sendRequest(obj.pendingAjaxCall[i][0], obj.pendingAjaxCall[i][3], obj.pendingAjaxCall[i][4]); } | ||||
|     } | ||||
| 
 | ||||
|     // Setup the file reader
 | ||||
|     var fileReader = new FileReader(); | ||||
|     var fileReaderInuse = false, fileReaderAcc = []; | ||||
|     if (fileReader.readAsBinaryString) { | ||||
|         // Chrome & Firefox (Draft)
 | ||||
|         fileReader.onload = function (e) { _OnSocketData(e.target.result); if (fileReaderAcc.length == 0) { fileReaderInuse = false; } else { fileReader.readAsBinaryString(new Blob([fileReaderAcc.shift()])); } } | ||||
|     } else if (fileReader.readAsArrayBuffer) { | ||||
|         // Chrome & Firefox (Spec)
 | ||||
|         fileReader.onloadend = function (e) { _OnSocketData(e.target.result); if (fileReaderAcc.length == 0) { fileReaderInuse = false; } else { fileReader.readAsArrayBuffer(fileReaderAcc.shift()); } } | ||||
|     } | ||||
| 
 | ||||
|     function _OnMessage(e) { | ||||
|         if (typeof e.data == 'object') { | ||||
|             if (fileReaderInuse == true) { fileReaderAcc.push(e.data); return; } | ||||
|             if (fileReader.readAsBinaryString) { | ||||
|                 // Chrome & Firefox (Draft)
 | ||||
|                 fileReaderInuse = true; | ||||
|                 fileReader.readAsBinaryString(new Blob([e.data])); | ||||
|             } else if (fileReader.readAsArrayBuffer) { | ||||
|                 // Chrome & Firefox (Spec)
 | ||||
|                 fileReaderInuse = true; | ||||
|                 fileReader.readAsArrayBuffer(e.data); | ||||
|             } else { | ||||
|                 // IE10, readAsBinaryString does not exist, use an alternative.
 | ||||
|                 var binary = '', bytes = new Uint8Array(e.data), length = bytes.byteLength; | ||||
|                 for (var i = 0; i < length; i++) { binary += String.fromCharCode(bytes[i]); } | ||||
|                 _OnSocketData(binary); | ||||
|             } | ||||
|         } else { | ||||
|             _OnSocketData(e.data); | ||||
|         } | ||||
|     }; | ||||
| 
 | ||||
|     // Websocket relay specific private method
 | ||||
|     function _OnSocketData(data) { | ||||
|         //obj.Debug("_OnSocketData (" + data.length + "): " + data);
 | ||||
| 
 | ||||
|         if (typeof data === 'object') { | ||||
|             // This is an ArrayBuffer, convert it to a string array (used in IE)
 | ||||
|             var binary = '', bytes = new Uint8Array(data), length = bytes.byteLength; | ||||
|             for (var i = 0; i < length; i++) { binary += String.fromCharCode(bytes[i]); } | ||||
|             data = binary; | ||||
|         } | ||||
|         else if (typeof data !== 'string') return; | ||||
| 
 | ||||
|         //console.log("RECV: " + data); // DEBUG
 | ||||
| 
 | ||||
|         obj.socketAccumulator += data; | ||||
|     function _OnMessage(e) { | ||||
|         //obj.Debug("_OnSocketData (" + data.byteLength + "): " + data);
 | ||||
|         obj.socketAccumulator += arrToStr(new Uint8Array(e.data)); | ||||
|         while (true) { | ||||
|             if (obj.socketParseState == 0) { | ||||
|                 var headersize = obj.socketAccumulator.indexOf('\r\n\r\n'); | ||||
|                 if (headersize < 0) return; | ||||
|                 //obj.Debug(obj.socketAccumulator.substring(0, headersize)); // Display received HTTP header
 | ||||
|                 obj.socketHeader = obj.socketAccumulator.substring(0, headersize).split('\r\n'); | ||||
|                 if (obj.amtVersion == null) { for (var i in obj.socketHeader) { if (obj.socketHeader[i].indexOf('Server: Intel(R) Active Management Technology ') == 0) { obj.amtVersion = obj.socketHeader[i].substring(46); } } } | ||||
|                 obj.socketAccumulator = obj.socketAccumulator.substring(headersize + 4); | ||||
|                 obj.socketParseState = 1; | ||||
|                 obj.socketData = ''; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue