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
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
# |
|
# Filename: 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. |
|
# --- SDE-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" |
|
} |
|
|
|
|