86 lines
1.9 KiB
Bash
86 lines
1.9 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
|
||
|
WPA_SUP_BIN="/usr/sbin/wpa_supplicant"
|
||
|
WPA_SUP_PNAME="wpa_supplicant"
|
||
|
WPA_SUP_PIDFILE="/var/run/wpa_supplicant.$IFACE.pid"
|
||
|
WPA_SUP_OPTIONS="-B -P $WPA_SUP_PIDFILE -i $IFACE"
|
||
|
|
||
|
VERBOSITY=0
|
||
|
|
||
|
|
||
|
if [ -s "$IF_WPA_CONF" ]; then
|
||
|
WPA_SUP_CONF="-c $IF_WPA_CONF"
|
||
|
else
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
if [ ! -x "$WPA_SUP_BIN" ]; then
|
||
|
|
||
|
if [ "$VERBOSITY" = "1" ]; then
|
||
|
echo "$WPA_SUP_PNAME: binaries not executable or missing from $WPA_SUP_BIN"
|
||
|
fi
|
||
|
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ "$MODE" = "start" ] ; then
|
||
|
# driver type of interface, defaults to wext when undefined
|
||
|
if [ -s "/etc/wpa_supplicant/driver.$IFACE" ]; then
|
||
|
IF_WPA_DRIVER=$(cat "/etc/wpa_supplicant/driver.$IFACE")
|
||
|
elif [ -z "$IF_WPA_DRIVER" ]; then
|
||
|
|
||
|
if [ "$VERBOSITY" = "1" ]; then
|
||
|
echo "$WPA_SUP_PNAME: wpa-driver not provided, using \"wext\""
|
||
|
fi
|
||
|
|
||
|
IF_WPA_DRIVER="wext"
|
||
|
fi
|
||
|
|
||
|
# if we have passed the criteria, start wpa_supplicant
|
||
|
if [ -n "$WPA_SUP_CONF" ]; then
|
||
|
|
||
|
if [ "$VERBOSITY" = "1" ]; then
|
||
|
echo "$WPA_SUP_PNAME: $WPA_SUP_BIN $WPA_SUP_OPTIONS $WPA_SUP_CONF -D $IF_WPA_DRIVER"
|
||
|
fi
|
||
|
|
||
|
start-stop-daemon --start --quiet \
|
||
|
--name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \
|
||
|
-- $WPA_SUP_OPTIONS $WPA_SUP_CONF -D $IF_WPA_DRIVER
|
||
|
fi
|
||
|
|
||
|
# if the interface socket exists, then wpa_supplicant was invoked successfully
|
||
|
if [ -S "$WPA_COMMON_CTRL_IFACE/$IFACE" ]; then
|
||
|
|
||
|
if [ "$VERBOSITY" = "1" ]; then
|
||
|
echo "$WPA_SUP_PNAME: ctrl_interface socket located at $WPA_COMMON_CTRL_IFACE/$IFACE"
|
||
|
fi
|
||
|
|
||
|
exit 0
|
||
|
|
||
|
fi
|
||
|
|
||
|
elif [ "$MODE" = "stop" ]; then
|
||
|
|
||
|
if [ -f "$WPA_SUP_PIDFILE" ]; then
|
||
|
|
||
|
if [ "$VERBOSITY" = "1" ]; then
|
||
|
echo "$WPA_SUP_PNAME: terminating $WPA_SUP_PNAME daemon"
|
||
|
fi
|
||
|
|
||
|
start-stop-daemon --stop --quiet \
|
||
|
--name $WPA_SUP_PNAME --pidfile $WPA_SUP_PIDFILE
|
||
|
|
||
|
if [ -S "$WPA_COMMON_CTRL_IFACE/$IFACE" ]; then
|
||
|
rm -f $WPA_COMMON_CTRL_IFACE/$IFACE
|
||
|
fi
|
||
|
|
||
|
if [ -f "$WPA_SUP_PIDFILE" ]; then
|
||
|
rm -f $WPA_SUP_PIDFILE
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
fi
|
||
|
|
||
|
exit 0
|