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
				
			
		
							
								
								
									
										6
									
								
								contrib/ui/nas-asustor/var/lib/mesh/deviceinfo
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								contrib/ui/nas-asustor/var/lib/mesh/deviceinfo
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
echo vendor=Asustor
 | 
			
		||||
echo vendorOperatingSystemName=ADM
 | 
			
		||||
eval $(cat /etc/default/nas.conf | grep '\<Model\>\|\<Version\>' | sed 's/ //g')
 | 
			
		||||
echo firmwareVersion="$Version"
 | 
			
		||||
echo model=$Model
 | 
			
		||||
							
								
								
									
										76
									
								
								contrib/ui/nas-asustor/var/lib/mesh/webauth
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								contrib/ui/nas-asustor/var/lib/mesh/webauth
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
#exit with zero status on auth success and 1 on error
 | 
			
		||||
#
 | 
			
		||||
#You can use our cgi to restrict access to RiV Mesh configuration page only for authenticated NAS OS users.
 | 
			
		||||
#==========================
 | 
			
		||||
#1. use login to verify authenticated NAS OS user
 | 
			
		||||
#
 | 
			
		||||
#for example:
 | 
			
		||||
#
 | 
			
		||||
#root@AS6208T-RD:/ # REMOTE_ADDR="127.0.0.1" QUERY_STRING="act=login&apptag=mesh&account=admin&password=admin888" /usr/webman/portal/apis/appCentral/applogin.cgi
 | 
			
		||||
#Content-type: text/plain; charset=utf-8
 | 
			
		||||
#
 | 
			
		||||
#result:
 | 
			
		||||
#{ "success": true, "account": "admin", "sid": "yPgoWu95eXxCxZJr", "isAdminGroup": 1, "model": "AS6208T", "hostid": "20-16-01-21-14-01" }
 | 
			
		||||
#
 | 
			
		||||
#explanation:   
 | 
			
		||||
#apptag:  application name 
 | 
			
		||||
#account&password:  which you want to verify
 | 
			
		||||
#
 | 
			
		||||
#2. When you finish verifying authenticated NAS OS user, you must logout from NAS.
 | 
			
		||||
#
 | 
			
		||||
#for example:
 | 
			
		||||
#
 | 
			
		||||
#root@AS6208T-RD:/ # QUERY_STRING="act=logout&sid=yPgoWu95eXxCxZJr" /usr/webman/portal/apis/login.cgi
 | 
			
		||||
#Content-type: text/plain; charset=utf-8
 | 
			
		||||
#
 | 
			
		||||
#result
 | 
			
		||||
#{ "success": true }
 | 
			
		||||
#
 | 
			
		||||
#explanation:  
 | 
			
		||||
#sid:  same as above (login result)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CACHE="/usr/local/AppCentral/mesh/var/lib/mesh/access_key"
 | 
			
		||||
if [ -f $CACHE ] && [ "$(expr $(date +%s) - $(date -r $CACHE +%s))" -lt 3600 ]; then
 | 
			
		||||
   exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#we want read e.g.:
 | 
			
		||||
#HTTP_COOKIE='access_key=sdu45KJFDHksadulf='
 | 
			
		||||
IFS=';'
 | 
			
		||||
for x in $HTTP_COOKIE
 | 
			
		||||
do
 | 
			
		||||
    eval $x
 | 
			
		||||
done
 | 
			
		||||
#we want get e.g.:
 | 
			
		||||
#access_key='user=admin;pwd=L4edNyoCC15.kDBLIN05480'
 | 
			
		||||
access_key=$(echo $access_key | base64 -d)
 | 
			
		||||
 | 
			
		||||
CACHE="/usr/local/AppCentral/mesh/var/lib/mesh/$access_key"
 | 
			
		||||
if [ -f $CACHE ] && [ "$(expr $(date +%s) - $(date -r $CACHE +%s))" -lt 3600 ]; then
 | 
			
		||||
	exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
IFS=';'
 | 
			
		||||
for x in $access_key
 | 
			
		||||
do
 | 
			
		||||
    eval $x
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if [ -z "${user}" ] || [ -z "${pwd}" ]; then
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
export REMOTE_ADDR="127.0.0.1" 
 | 
			
		||||
export QUERY_STRING="act=login&apptag=mesh&account=${user}&password=${pwd}" 
 | 
			
		||||
S=$(/usr/webman/portal/apis/appCentral/applogin.cgi | sed '/"sid"/!d; s/\s\+//g; s/.*"sid":"\([^"]*\)".*/\1/')
 | 
			
		||||
if [ -z $S ]; then
 | 
			
		||||
	exit 1
 | 
			
		||||
else
 | 
			
		||||
	export QUERY_STRING="act=logout&sid=$S" 
 | 
			
		||||
	/usr/webman/portal/apis/login.cgi >/dev/null
 | 
			
		||||
	touch $CACHE
 | 
			
		||||
	exit 0
 | 
			
		||||
fi
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue