WPA Supplicant: Add warning about its use
[dragonfly.git] / etc / rc.d / wpa_supplicant
1 #!/bin/sh
2 #
3 # $FreeBSD: src/etc/rc.d/wpa_supplicant,v 1.2 2005/10/19 22:26:47 jkim Exp $
4 #
5
6 # PROVIDE: wpa_supplicant
7 # REQUIRE: mountcritremote
8 # KEYWORD: nojail nostart
9
10 . /etc/rc.subr
11 . /etc/network.subr
12
13 name="wpa_supplicant"
14 rcvar=
15 command="/usr/sbin/wpa_supplicant"
16 conf_file="/etc/wpa_supplicant.conf"
17
18 start_precmd="wpa_supplicant_precmd"
19 wpa_supplicant_precmd()
20 {
21         ifconfig $ifn up
22 }
23 start_postcmd="wpa_supplicant_postcmd"
24 wpa_supplicant_postcmd()
25 {
26 # don't wait for wpa_supplicant to associate
27 #       while ! ifconfig $ifn | grep -qw "status: associated"; do
28 #               sleep 1
29 #       done
30         if [ "${command}" = "/usr/sbin/wpa_supplicant" ];
31         then
32                 cat << EOF
33          ==============================================================
34          =              WARNING  *  SECURITY  *  WARNING              =
35          ==============================================================
36
37 The base wpa_supplicant is running.  This version is several releases behind
38 and is not patched for security vulnerabilities.  It is highly recommended
39 that the DPorts version be run instead.  Instructions to switch here:
40
41 http://www.dragonflybsd.org/docs/docs/newhandbook/WirelessNetwork/#index1h2
42
43 EOF
44                 sleep 10
45         fi
46 }
47
48 ifn="$2"
49 if [ -z "$ifn" ]; then
50         return 1
51 fi
52
53 is_ndis_interface()
54 {
55         case `sysctl -n net.wlan.${1#wlan}.%parent 2>/dev/null` in
56                 ndis*) true ;;
57                 *) false ;;
58         esac
59 }
60
61 if is_ndis_interface ${ifn}; then
62         driver="ndis"
63 else
64         driver="bsd"
65 fi
66
67 load_rc_config $name
68
69 pid_file="/var/run/${name}/${ifn}.pid"
70 command_args="-B -q -i $ifn -c $conf_file -D $driver -P $pid_file"
71 required_files=$conf_file
72
73 run_rc_command "$1"