mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-04 11:15:07 +03:00 
			
		
		
		
	1. added multipath protocol and schema suport
2. added SCTP protocol and schema support 3. added set of NAS models support (Asustor, ReadyNAS, Drobo, QNAP, WD, Synology, Terramaster) 4. moved to fc00::/7 private segment 5. added Windows, MacOS and Linux UI for peers edit and current status
This commit is contained in:
		
							parent
							
								
									cfa293d189
								
							
						
					
					
						commit
						d8a4000141
					
				
					 198 changed files with 8589 additions and 697 deletions
				
			
		
							
								
								
									
										102
									
								
								contrib/ui/nas-qnap/au/www/assets/get_sid.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								contrib/ui/nas-qnap/au/www/assets/get_sid.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,102 @@
 | 
			
		|||
/* encode function start */
 | 
			
		||||
var ezEncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 | 
			
		||||
var ezDecodeChars = new Array(
 | 
			
		||||
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 | 
			
		||||
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 | 
			
		||||
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
 | 
			
		||||
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
 | 
			
		||||
    -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
 | 
			
		||||
    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
 | 
			
		||||
    -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
 | 
			
		||||
    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
 | 
			
		||||
 | 
			
		||||
function utf16to8(str)
 | 
			
		||||
{
 | 
			
		||||
	var out, i, len, c;
 | 
			
		||||
	out = "";
 | 
			
		||||
	len = str.length;
 | 
			
		||||
	for (i=0; i<len; i++) {
 | 
			
		||||
		c = str.charCodeAt(i);
 | 
			
		||||
		if ((c >= 0x0001) && (c <= 0x007F)) {
 | 
			
		||||
			out += str.charAt(i);
 | 
			
		||||
		} 
 | 
			
		||||
		else if (c > 0x07FF) {
 | 
			
		||||
			out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
 | 
			
		||||
			out += String.fromCharCode(0x80 | ((c >>6) & 0x3F));
 | 
			
		||||
			out += String.fromCharCode(0x80 | ((c >>0) & 0x3F));
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			out += String.fromCharCode(0xC0 | ((c >>6) & 0x1F));
 | 
			
		||||
			out += String.fromCharCode(0x80 | ((c >>0) & 0x3F));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return out;
 | 
			
		||||
}
 | 
			
		||||
function utf8to16(str) {
 | 
			
		||||
	var out, i, len, c;
 | 
			
		||||
	var char2, char3;
 | 
			
		||||
 | 
			
		||||
	out = "";
 | 
			
		||||
	len = str.length;
 | 
			
		||||
	i = 0;
 | 
			
		||||
	while(i < len) {
 | 
			
		||||
		c = str.charCodeAt(i++);
 | 
			
		||||
		switch(c >> 4)
 | 
			
		||||
		{
 | 
			
		||||
		case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
 | 
			
		||||
		// 0xxxxxxx
 | 
			
		||||
			out += str.charAt(i-1);
 | 
			
		||||
			break;
 | 
			
		||||
		case 12: case 13:
 | 
			
		||||
		// 110x xxxx 10xx xxxx
 | 
			
		||||
			char2 = str.charCodeAt(i++);
 | 
			
		||||
			out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
 | 
			
		||||
			break;
 | 
			
		||||
		case 14:
 | 
			
		||||
		// 1110 xxxx10xx xxxx10xx xxxx
 | 
			
		||||
			char2 = str.charCodeAt(i++);
 | 
			
		||||
			char3 = str.charCodeAt(i++);
 | 
			
		||||
			out += String.fromCharCode(((c & 0x0F) << 12) |
 | 
			
		||||
			((char2 & 0x3F) << 6) |
 | 
			
		||||
			((char3 & 0x3F) << 0));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return out;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function ezEncode(str)
 | 
			
		||||
{
 | 
			
		||||
  var out, i, len;
 | 
			
		||||
  var c1, c2, c3;
 | 
			
		||||
 | 
			
		||||
  len = str.length;
 | 
			
		||||
  i = 0;
 | 
			
		||||
  out = "";
 | 
			
		||||
  while(i < len)
 | 
			
		||||
	{
 | 
			
		||||
		c1 = str.charCodeAt(i++) & 0xff;
 | 
			
		||||
		if(i == len)
 | 
			
		||||
		{
 | 
			
		||||
			out += ezEncodeChars.charAt(c1 >> 2);
 | 
			
		||||
		  out += ezEncodeChars.charAt((c1 & 0x3) << 4);
 | 
			
		||||
		  out += "==";
 | 
			
		||||
		  break;
 | 
			
		||||
		}
 | 
			
		||||
		c2 = str.charCodeAt(i++);
 | 
			
		||||
		if(i == len)
 | 
			
		||||
		{
 | 
			
		||||
	    out += ezEncodeChars.charAt(c1 >> 2);
 | 
			
		||||
	    out += ezEncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
 | 
			
		||||
	    out += ezEncodeChars.charAt((c2 & 0xF) << 2);
 | 
			
		||||
	    out += "=";
 | 
			
		||||
	    break;
 | 
			
		||||
		}
 | 
			
		||||
		c3 = str.charCodeAt(i++);
 | 
			
		||||
		out += ezEncodeChars.charAt(c1 >> 2);
 | 
			
		||||
		out += ezEncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
 | 
			
		||||
		out += ezEncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
 | 
			
		||||
		out += ezEncodeChars.charAt(c3 & 0x3F);
 | 
			
		||||
	}
 | 
			
		||||
  return out;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								contrib/ui/nas-qnap/au/www/assets/partner-logo.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								contrib/ui/nas-qnap/au/www/assets/partner-logo.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 16 KiB  | 
							
								
								
									
										104
									
								
								contrib/ui/nas-qnap/au/www/assets/properties.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								contrib/ui/nas-qnap/au/www/assets/properties.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,104 @@
 | 
			
		|||
var ed = {
 | 
			
		||||
	partnerId: 1222,
 | 
			
		||||
	brand: 'RiV Mesh',
 | 
			
		||||
	applicationName: "RiV Mesh QNAP NAS OS App",
 | 
			
		||||
	nasOSName: "QNAP NAS device",
 | 
			
		||||
	useAuthNASRichScreen: true,
 | 
			
		||||
	nasVisitEDWebsiteLogin: "https://github.com/RiV-chain/RiV-mesh",
 | 
			
		||||
	nasVisitEDWebsiteSignup: "https://github.com/RiV-chain/RiV-mesh",
 | 
			
		||||
	nasVisitEDWebsiteLoggedin: "https://github.com/RiV-chain/RiV-mesh",
 | 
			
		||||
	getNasAuthUrl: function () {
 | 
			
		||||
		return "/";
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
$(function () {
 | 
			
		||||
 | 
			
		||||
	ed.nasLoginCall = function (nasLoginSuccess, nasLoginFailure) {
 | 
			
		||||
		/* encode function start */
 | 
			
		||||
		var ezEncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 | 
			
		||||
 | 
			
		||||
		function utf16to8(str)
 | 
			
		||||
		{
 | 
			
		||||
			var out, i, len, c;
 | 
			
		||||
			out = "";
 | 
			
		||||
			len = str.length;
 | 
			
		||||
			for (i = 0; i < len; i++) {
 | 
			
		||||
				c = str.charCodeAt(i);
 | 
			
		||||
				if ((c >= 0x0001) && (c <= 0x007F)) {
 | 
			
		||||
					out += str.charAt(i);
 | 
			
		||||
				} else if (c > 0x07FF) {
 | 
			
		||||
					out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
 | 
			
		||||
					out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
 | 
			
		||||
					out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
 | 
			
		||||
 | 
			
		||||
				} else {
 | 
			
		||||
					out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
 | 
			
		||||
					out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return out;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		function ezEncode(str)
 | 
			
		||||
		{
 | 
			
		||||
			var out, i, len;
 | 
			
		||||
			var c1, c2, c3;
 | 
			
		||||
 | 
			
		||||
			len = str.length;
 | 
			
		||||
			i = 0;
 | 
			
		||||
			out = "";
 | 
			
		||||
			while (i < len)
 | 
			
		||||
			{
 | 
			
		||||
				c1 = str.charCodeAt(i++) & 0xff;
 | 
			
		||||
				if (i == len)
 | 
			
		||||
				{
 | 
			
		||||
					out += ezEncodeChars.charAt(c1 >> 2);
 | 
			
		||||
					out += ezEncodeChars.charAt((c1 & 0x3) << 4);
 | 
			
		||||
					out += "==";
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
				c2 = str.charCodeAt(i++);
 | 
			
		||||
				if (i == len)
 | 
			
		||||
				{
 | 
			
		||||
					out += ezEncodeChars.charAt(c1 >> 2);
 | 
			
		||||
					out += ezEncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
 | 
			
		||||
					out += ezEncodeChars.charAt((c2 & 0xF) << 2);
 | 
			
		||||
					out += "=";
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
				c3 = str.charCodeAt(i++);
 | 
			
		||||
				out += ezEncodeChars.charAt(c1 >> 2);
 | 
			
		||||
				out += ezEncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
 | 
			
		||||
				out += ezEncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
 | 
			
		||||
				out += ezEncodeChars.charAt(c3 & 0x3F);
 | 
			
		||||
			}
 | 
			
		||||
			return out;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		var d = new Date();
 | 
			
		||||
		d.setTime(d.getTime() + (30 * 60 * 1000));
 | 
			
		||||
		document.cookie = "qnapuser=" + encodeURIComponent($('#nasInputUser').val()) + "; expires=" + d.toUTCString() + "; path=/";
 | 
			
		||||
		document.cookie = "qnappwd=" + encodeURIComponent(ezEncode(utf16to8($('#nasInputPassword').val()))) + "; expires=" + d.toUTCString() + "; path=/";
 | 
			
		||||
		$.ajax({url: "rest/info"}).done(function (response) {
 | 
			
		||||
			window.location.reload();
 | 
			
		||||
			checkError(response);
 | 
			
		||||
		}).fail(function () {
 | 
			
		||||
			ed.nasLogoutCall();
 | 
			
		||||
			nasLoginFailure();
 | 
			
		||||
		});
 | 
			
		||||
	};
 | 
			
		||||
	ed.nasLogoutCall = function() {
 | 
			
		||||
		document.cookie = "qnapuser=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/";
 | 
			
		||||
		document.cookie = "qnappwd=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/";
 | 
			
		||||
	};
 | 
			
		||||
	function getCookie(name) {
 | 
			
		||||
		var matches = document.cookie.match(new RegExp(
 | 
			
		||||
			"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
 | 
			
		||||
		));
 | 
			
		||||
		return matches ? decodeURIComponent(matches[1]) : undefined;
 | 
			
		||||
	}
 | 
			
		||||
	ed.getNasUser = function() {
 | 
			
		||||
		return getCookie('qnapuser');
 | 
			
		||||
	};
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue