1#!/bin/sh 2 3 4WPA_SUP_BIN="/usr/sbin/wpa_supplicant" 5WPA_SUP_PNAME="wpa_supplicant" 6WPA_SUP_PIDFILE="/var/run/wpa_supplicant.$IFACE.pid" 7WPA_COMMON_CTRL_IFACE="/var/run/wpa_supplicant" 8WPA_SUP_OPTIONS="-B -P $WPA_SUP_PIDFILE -i $IFACE" 9 10VERBOSITY=0 11 12 13if [ -s "$IF_WPA_CONF" ]; then 14 WPA_SUP_CONF="-c $IF_WPA_CONF" 15else 16 exit 0 17fi 18 19if [ ! -x "$WPA_SUP_BIN" ]; then 20 21 if [ "$VERBOSITY" = "1" ]; then 22 echo "$WPA_SUP_PNAME: binaries not executable or missing from $WPA_SUP_BIN" 23 fi 24 25 exit 1 26fi 27 28if [ "$MODE" = "start" ] ; then 29 # driver type of interface, defaults to wext when undefined 30 if [ -s "/etc/wpa_supplicant/driver.$IFACE" ]; then 31 IF_WPA_DRIVER=$(cat "/etc/wpa_supplicant/driver.$IFACE") 32 elif [ -z "$IF_WPA_DRIVER" ]; then 33 34 if [ "$VERBOSITY" = "1" ]; then 35 echo "$WPA_SUP_PNAME: wpa-driver not provided, using \"wext\"" 36 fi 37 38 IF_WPA_DRIVER="wext" 39 fi 40 41 # if we have passed the criteria, start wpa_supplicant 42 if [ -n "$WPA_SUP_CONF" ]; then 43 44 if [ "$VERBOSITY" = "1" ]; then 45 echo "$WPA_SUP_PNAME: $WPA_SUP_BIN $WPA_SUP_OPTIONS $WPA_SUP_CONF -D $IF_WPA_DRIVER" 46 fi 47 48 start-stop-daemon --start --quiet \ 49 --name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \ 50 -- $WPA_SUP_OPTIONS $WPA_SUP_CONF -D $IF_WPA_DRIVER 51 fi 52 53 # if the interface socket exists, then wpa_supplicant was invoked successfully 54 if [ -S "$WPA_COMMON_CTRL_IFACE/$IFACE" ]; then 55 56 if [ "$VERBOSITY" = "1" ]; then 57 echo "$WPA_SUP_PNAME: ctrl_interface socket located at $WPA_COMMON_CTRL_IFACE/$IFACE" 58 fi 59 60 exit 0 61 62 fi 63 64elif [ "$MODE" = "stop" ]; then 65 66 if [ -f "$WPA_SUP_PIDFILE" ]; then 67 68 if [ "$VERBOSITY" = "1" ]; then 69 echo "$WPA_SUP_PNAME: terminating $WPA_SUP_PNAME daemon" 70 fi 71 72 start-stop-daemon --stop --quiet \ 73 --name $WPA_SUP_PNAME --pidfile $WPA_SUP_PIDFILE 74 75 if [ -S "$WPA_COMMON_CTRL_IFACE/$IFACE" ]; then 76 rm -f $WPA_COMMON_CTRL_IFACE/$IFACE 77 fi 78 79 if [ -f "$WPA_SUP_PIDFILE" ]; then 80 rm -f $WPA_SUP_PIDFILE 81 fi 82 fi 83 84fi 85 86exit 0 87