59 lines
942 B
Bash
59 lines
942 B
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: wpa_supplicant
|
|
# REQUIRE: mountcritremote
|
|
# KEYWORD: nojail nostart
|
|
|
|
. /etc/rc.subr
|
|
. /etc/network.subr
|
|
|
|
name="wpa_supplicant"
|
|
rcvar=
|
|
|
|
ifn="$2"
|
|
if [ -z "$ifn" ]; then
|
|
return 1
|
|
fi
|
|
|
|
is_wired_interface()
|
|
{
|
|
media=`ifconfig $1 2>/dev/null | while read line; do
|
|
case "$line" in
|
|
*media:?Ethernet*)
|
|
echo Ethernet
|
|
;;
|
|
esac
|
|
done`
|
|
test "$media" = "Ethernet"
|
|
}
|
|
|
|
is_ndis_interface()
|
|
{
|
|
case `sysctl -n net.wlan.${1#wlan}.%parent 2>/dev/null` in
|
|
ndis*) true ;;
|
|
*) false ;;
|
|
esac
|
|
}
|
|
|
|
if is_wired_interface ${ifn} ; then
|
|
driver="wired"
|
|
elif is_ndis_interface ${ifn} ; then
|
|
driver="ndis"
|
|
else
|
|
driver="bsd"
|
|
fi
|
|
|
|
load_rc_config $name
|
|
|
|
command=${wpa_supplicant_program}
|
|
conf_file=${wpa_supplicant_conf_file}
|
|
pidfile="/var/run/${name}/${ifn}.pid"
|
|
command_args="-B -i $ifn -c $conf_file -D $driver -P $pidfile"
|
|
required_files=$conf_file
|
|
required_modules="wlan_wep wlan_tkip wlan_ccmp"
|
|
|
|
run_rc_command "$1"
|