| 
					
				 | 
			
			
				@@ -17,6 +17,7 @@ readonly _WWW='/www' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 readonly _PWDFILE="/opt/lib/htpasswd" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 readonly _TMP='/tmp' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 readonly _LOG="${_WWW}/log/admin.log" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+readonly _SCRIPTS='/opt/lib/scripts' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 readonly _DEBUG=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 readonly _IFS=$IFS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,7 +52,7 @@ headerPrint() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ## faster echo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _echo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  printf "%s" "${*}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  printf "%b" "${*}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 htDigest() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -88,8 +89,7 @@ setQueryVars() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 runSuid() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   local _SID=$(/usr/bin/ps -p $$ -o sid=)  ## pass session id to the child 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   local _CMD=$@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  logThis "command: $_CMD" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /usr/bin/sudo ./suid.sh $_CMD $_SID 2>/dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /usr/bin/sudo $_SCRIPTS/suid.sh $_CMD $_SID 2>/dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 getQueryFile() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -126,29 +126,28 @@ pwdChange() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     showMesg 'Password must be at least 6 characters long' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  runSuid "echo -e \"$POST_pwd\n$POST_pwd\" | passwd root" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  runSuid "echo $(htDigest $POST_pwd) > $_PWDFILE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  _OUT=$(runSuid "echo -e \"$POST_pwd\n$POST_pwd\" | passwd root 2>&1" && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  runSuid "echo $(htDigest $POST_pwd) > $_PWDFILE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _ERR=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if [[ $_ERR -gt 0 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    showMesg 'Password change failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    showMesg 'Password change failed!' '5' "$_OUT -" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    showMesg 'Password is changed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    showMesg 'Password is changed' '2' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 lanAddr() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   logThis "new LAN addr is: $POST_lanipaddr" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   validIp $POST_lanipaddr || showMesg 'Not valid network address' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  doUci set lanipaddr $POST_lanipaddr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  doUci set lanipaddr $POST_lanipaddr && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  doUci commit network 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _ERR=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if [[ $_ERR -gt 0 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     showMesg 'Setting network address failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    doUci commit network && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    runSuid "dtach -n -zE /opt/lib/scripts/net-restart.sh" && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    showMesg 'New network address is set' '30' "Your server is now accessible under <a href='http://superglue.local/admin'>http://superglue.local/admin</a>" ||  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    showMesg 'Setting network address failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    runSuid "dtach -n -zE $_SCRIPTS/net-restart.sh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    showMesg 'New network address is set' '30' "Your server is now accessible under <a href='http://superglue.local/admin'>http://superglue.local/admin</a>" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -195,21 +194,18 @@ wanSet() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       doUci set wandns $POST_wandns 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if [[ $POST_wanifname == 'wlan1' ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ssidChange || showMesg 'Wireless changes failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ssidChange || showMesg 'Wireless configuration failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ## background the following 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ##(doUci commit network; doUci commit wireless) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (doUci commit network; doUci commit wireless;) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    runSuid "dtach -n -zE /opt/lib/scripts/net-restart.sh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    doUci commit network && doUci commit wireless 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     _ERR=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if [[ $_ERR -gt 0 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      showMesg 'Configuring Internet connection failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    runSuid "dtach -n -zE $_SCRIPTS/net-restart.sh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if [[ $_ERR -eq 0 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      showMesg 'Internet connection is being configured' '20' 'check your Internet connection on completion - ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      showMesg 'Internet connection is being configured' '35' 'check your Internet connection on completion - ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fi  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      showMesg 'Configuring Internet connection failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  logThis "new WAN iface is: $POST_wanifname" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ssidChange() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -257,19 +253,25 @@ ssidChange() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [[ $_ERR -gt 0 ]] && showMesg 'Wireless configuration failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if [[ $POST_iface == 'lan' ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #doUci set lanipaddr ${POST_lanipaddr} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #_ERR=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #[[ $_ERR -gt 0 ]] && showMesg 'LAN IP configuration failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if [[ "$(doUci get lanipaddr)" !=  "${POST_lanipaddr}" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       logThis 'local IP was changed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       lanAddr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  doUci commit wireless && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  runSuid "dtach -n -zE /opt/lib/scripts/net-restart.sh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  doUci commit wireless 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  _ERR=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if [[ $_ERR -gt 0 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    showMesg 'Configuration failed' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    runSuid "dtach -n -zE $_SCRIPTS/net-restart.sh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if [[ $POST_iface == 'lan' ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     showMesg 'Local network configuration is progress' '45' 'check your connection on completion - ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ## in this case wanSet() handles success message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -287,7 +289,7 @@ showMesg() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   local _SUBMSG=$3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _MSG=${_MSG:='Configuration'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _TIMEOUT=${_TIMEOUT:='5'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  _SUBMSG="${_SUBMSG} waiting <span id='timeout'>${_TIMEOUT}</span> seconds to get ready.." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  _SUBMSG="${_SUBMSG} <span id='timeout'>${_TIMEOUT}</span> seconds to get ready.." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if [[ $_ERR -gt 0 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     local _TYPE='ERROR: ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     headerPrint 406 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -324,16 +326,16 @@ updateFw() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _FWFILE="${_TMP}/fwupload.bin" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _OUT="$(/sbin/sysupgrade -T $_FWFILE 2>&1)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _ERR=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  [[ $_ERR -gt 0 ]] && showMesg "Firmware upgrade failed! $_OUT" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  [[ $_ERR -gt 0 ]] && showMesg "Firmware upgrade failed!\n$_OUT" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ## using dtach to prevent sysupgrade getting killed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  runSuid "dtach -n -zE /opt/lib/scripts/fw-upgrade.sh $_FWFILE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  runSuid "dtach -n -zE $_SCRIPTS/fw-upgrade.sh $_FWFILE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   showMesg 'Firmware upgrade is in progress..' '120' 'Device needs to reboot -' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 usbInit() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  _OUT="$(runSuid /opt/lib/scripts/usb-part.sh)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  _OUT="$(runSuid $_SCRIPTS/usb-part.sh)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   _ERR=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  [[ $_ERR -gt 0 ]] && showMesg "usb init failed, $_OUT" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  [[ $_ERR -gt 0 ]] && showMesg "USB init failed!\n$_OUT" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   showMesg 'USB storage initialization is completed' '30' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #  logThis 'usb init..' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -358,7 +360,7 @@ upTime() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 iwScan() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  . /opt/lib/scripts/iw-scan.sh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  . $_SCRIPTS/iw-scan.sh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   headerPrint 200 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   iwScanJ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   exit 0 
			 |