# --- 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" }