Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
[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 # $DragonFly: src/etc/rc.d/wpa_supplicant,v 1.2 2008/07/07 00:00:56 thomas Exp $
5 #
6
7 # PROVIDE: wpa_supplicant
8 # REQUIRE: mountcritremote
9 # KEYWORD: nojail nostart
10
11 . /etc/rc.subr
12 . /etc/network.subr
13
14 name="wpa_supplicant"
15 rcvar=
16 command="/usr/sbin/${name}"
17 conf_file="/etc/wpa_supplicant.conf"
18
19 start_precmd="wpa_supplicant_precmd"
20 wpa_supplicant_precmd()
21 {
22         ifconfig $ifn up
23 }
24 start_postcmd="wpa_supplicant_postcmd"
25 wpa_supplicant_postcmd()
26 {
27         while ! ifconfig $ifn | grep -qw "status: associated"; do
28                 sleep 1
29         done
30 }
31
32 ifn="$2"
33 if [ -z "$ifn" ]; then
34         return 1
35 fi
36
37 case ${ifn} in
38 ndis*)
39         driver="ndis"
40         ;;
41 *)
42         driver="bsd"
43         ;;
44 esac
45
46 load_rc_config $name
47
48 pid_file="/var/run/${name}/${ifn}.pid"
49 command_args="-B -q -i $ifn -c $conf_file -D $driver -P $pid_file"
50 required_files=$conf_file
51
52 run_rc_command "$1"