# Common loader functions for WIFI boot scripts
# (C)`09 AITNET ltd - Sofia/Bulgaria <misho@aitbg.com>
#
# $Id: rc.wifi,v 1.1.1.1.4.2 2011/10/31 13:33:46 misho Exp $
# setWEP() <iface> <default_key> <key1> [key2] [key3] [key4]
setWEP()
{
if [ $# -lt 3 ]; then
echo "setWEP() Not enough parameters ..."
return 1
fi
ARGS="authmode open wepmode on deftxkey $2 wepkey 1:$3"
if [ $# -gt 3 ]; then
ARGS=$ARGS" wepkey 2:$4"
fi
if [ $# -gt 4 ]; then
ARGS=$ARGS" wepkey 3:$5"
fi
if [ $# -gt 5 ]; then
ARGS=$ARGS" wepkey 4:$6"
fi
ifconfig $1 $ARGS
}
# mkhostconf() <iface> <host_mode> <wpa_pass> [wep_key]
mkhostconf()
{
if [ $# -lt 3 ]; then
echo "mkhostconf() Not enough parameters ..."
return 1
fi
case $2 in
wpa1|1)
WPA_MODE=1
WPA_PAIR=CCMP
;;
wpa1_tkip)
WPA_MODE=1
WPA_PAIR=TKIP
;;
wpa2|2)
WPA_MODE=2
WPA_PAIR=CCMP
;;
wpa2_tkip)
WPA_MODE=2
WPA_PAIR=TKIP
;;
wpa|3)
WPA_MODE=3
WPA_PAIR=CCMP
;;
tsn)
if [ -z $4 ]; then
echo "mkhostconf() Not enough parameters ..."
return 1;
else
WEP_KEY0=$4
fi
WPA_MODE=1
WPA_PAIR=TKIP
;;
*)
echo "mkhostconf() Unknown WPA mode ..."
return 1
;;
esac
CONF=/var/tmp/hostapd_$1.conf
rm -f $CONF
cat >$CONF <<_EOF
interface=$1
ctrl_interface=/var/run/hostapd_$1.sock
dump_file=/var/tmp/hostapd_$1.dump
logger_syslog=-1
logger_syslog_level=0
logger_stdout=-1
logger_stdout_level=0
debug=4
wpa_psk_file=/etc/hostapd.wpa_psk
wpa=$WPA_MODE
wpa_pairwise=$WPA_PAIR
wpa_key_mgmt=WPA-PSK
wpa_passphrase=$3
_EOF
if [ ${#WEP_KEY0} -ne 0 ]; then
cat >>$CONF <<_EOF
tsn=1
wep_key0=$WEP_KEY0
_EOF
fi
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>