You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							152 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
	
	
							152 lines
						
					
					
						
							3.6 KiB
						
					
					
				| # --- T2-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| #  | |
| # T2 SDE: package/.../wireless-tools/rocknet_wireless.sh | |
| # Copyright (C) 2004 - 2006 The T2 SDE Project | |
| #  | |
| # More information can be found in the files COPYING and README. | |
| #  | |
| # This program is free software; you can redistribute it and/or modify | |
| # it under the terms of the GNU General Public License as published by | |
| # the Free Software Foundation; version 2 of the License. A copy of the | |
| # GNU General Public License can be found in the file COPYING. | |
| # --- T2-COPYRIGHT-NOTE-END --- | |
|  | |
| iwdetect_mangle_cells() { | |
| 	local essid=none mode= encryption= quality= | |
| 	local line= | |
|  | |
| 	mkdir -p $rocknet_tmp_base/$if/ | |
|  | |
| 	iwlist $if scan | while read line; do | |
| 		if [[ $line = *ESSID* ]]; then | |
| 			[ -n "$essid" ] && echo -e "$essid\t$mode\t$encryption\t$quality" | |
| 			essid="$( echo "$line" | sed -e 's,.*"\(.*\)",\1,g' )" | |
| 			mode= | |
| 			encryption= | |
| 			quality= | |
| 		elif [[ $line = Mode:* ]]; then | |
| 			mode=${line#*:} | |
| 		elif [[ $line = Encryption* ]]; then | |
| 			encryption=${line#*:} | |
| 		elif [[ $line = *Quality* ]]; then | |
| 			quality=$( echo "$line" | sed -e 's,:\([^ ]*\),:\1\n,g' | sed -e 's,^.*:,,g' | head -n 2 | tr '\n' '\t' ) | |
| 		elif [ -z "$line" ]; then | |
| 			[ "$essid" != "none" ] && echo -e "$essid\t$mode\t$encryption\t$quality" | |
| 		fi | |
| 	done > $rocknet_tmp_base/$if/detected_cells | |
| } | |
| iwdetect_select_cell() { | |
| 	local networkfile=${1:-/etc/conf/network-nettab} | |
| 	local essid= key= extra= | |
| 	local line= | |
|  | |
| 	if [ -f $networkfile ]; then | |
| 	while read -r essid key extra; do | |
| 		line="$( grep -e "^$essid" $rocknet_tmp_base/$if/detected_cells )" | |
| 		if [ -n "$line" ]; then | |
| 			echo "'$essid' selected..." | |
| 			echo "$line" | ( read -r -d '\t' essid mode encryption quality signal; | |
| 				iwconfig $if essid "$essid" | |
| 				case "$mode" in | |
| 					Master)	iwconfig $if mode Managed	;; | |
| 					Ad-Hoc) iwconfig $if mode "Ad-Hoc"	;; | |
| 					*)	echo "WARNING: Unknown mode '$mode'." ;; | |
| 				esac | |
| 				) | |
| 			break | |
| 		fi | |
| 	done < $networkfile | |
| 	else | |
| 		echo "INFO: to use iwdetect you need to set a $networkfile." | |
| 	fi | |
| } | |
|  | |
| public_iwdetect() { | |
| 	addcode up 4 2 "ip link set $if up" | |
| 	addcode up 4 3 "iwdetect_mangle_cells"  | |
| 	addcode up 4 4 "iwdetect_select_cell $1" | |
| 	addcode down 4 5 "iwconfig $if essid any" | |
| } | |
|  | |
| public_essid() { | |
| 	addcode up 4 5 "iwconfig $if essid $*" | |
| 	addcode down 4 5 "iwconfig $if essid any" | |
| } | |
|  | |
| public_nwid() { | |
| 	addcode up 4 5 "iwconfig $if nwid $*" | |
| 	addcode down 4 5 "iwconfig $if nwid off" | |
| } | |
|  | |
| public_domain() { | |
| 	addcode up 4 5 "iwconfig $if domain $*" | |
| 	addcode down 4 5 "iwconfig $if domain off" | |
| } | |
|  | |
| public_freq() { | |
| 	addcode up 4 5 "iwconfig $if freq $*" | |
| } | |
|  | |
| public_channel() { | |
| 	addcode up 4 5 "iwconfig $if channel $*" | |
| } | |
|  | |
| public_sens() { | |
| 	addcode up 4 5 "iwconfig $if sens $*" | |
| } | |
|  | |
| public_mode() { | |
| 	addcode up 4 4 "iwconfig $if mode $*" | |
| 	addcode down 4 4 "iwconfig $if mode Auto" | |
| } | |
|  | |
| public_ap() { | |
| 	addcode up 4 5 "iwconfig $if ap $*" | |
| 	addcode down 4 5 "iwconfig $if ap any" | |
| } | |
|  | |
| public_nick() { | |
| 	addcode up 4 5 "iwconfig $if nick $*" | |
| } | |
|  | |
| public_rate() { | |
| 	addcode up 4 5 "iwconfig $if rate $*" | |
| 	addcode down 4 5 "iwconfig $if rate auto" | |
| } | |
|  | |
| public_rts() { | |
| 	addcode up 4 5 "iwconfig $if rts $*" | |
| } | |
|  | |
| public_frag() { | |
| 	addcode up 4 5 "iwconfig $if frag $*" | |
| } | |
|  | |
| public_key() { | |
| 	addcode up 4 5 "iwconfig $if key $*" | |
| 	addcode down 4 5 "iwconfig $if key off" | |
| } | |
|  | |
| public_enc() { | |
|         addcode up 4 5 "iwconfig $if enc $*" | |
| 	addcode down 4 5 "iwconfig $if enc off" | |
| } | |
|  | |
| public_power() { | |
| 	addcode up 4 5 "iwconfig $if power $*" | |
| } | |
|  | |
| public_txpower() { | |
| 	addcode up 4 5 "iwconfig $if txpower $*" | |
| 	addcode down 4 5 "iwconfig $if txpower auto" | |
| } | |
|  | |
| public_retry() { | |
| 	addcode up 4 5 "iwconfig $if retry $*" | |
| } | |
|  | |
| public_commit() { | |
|         addcode up 4 9 "iwconfig $if commit" | |
| } | |
| 
 | |
| 
 |