fi
}
-# First make sure interface is available
-if ! ip link show ${DEVICE} ; then
- echo "Interface ${DEVICE} not available"
+# Make sure interface is available
+if ! ip link show ${DEVICE} > /dev/null 2>&1; then
+ echo "Interface ${1} not found"
exit ${EXIT_CODE_WARNING}
fi
# Determining if the interface is a bridge:
if [ "x${BRIDGE}" = "xyes" ]; then
check_brctl
- cmd_run_log ${BRCTL} addbr ${1} &&
- cmd_run_log ${BRCTL} stp ${1} off || exit 1
+ cmd_run_log ${BRCTL} addbr ${DEVICE} &&
+ cmd_run_log ${BRCTL} stp ${DEVICE} off || exit 1
fi
# Determining if the interface is part of a bridge:
if [ -n "${BRIDGE_TO}" ]; then
check_brctl
- cmd_run_log ${BRCTL} addif ${BRIDGE_TO} ${1} || exit 1
+ cmd_run_log ${BRCTL} addif ${BRIDGE_TO} ${DEVICE} || exit 1
+fi
+
+if [ "x${BOOTPROTO}" = "xwifi" ]; then
+ # Bring interface up
+ link_status=$(ip link show ${DEVICE})
+ if [ -n "${link_status}" ]; then
+ if ! echo "${link_status}" | grep -q UP; then
+ cmd_run_log ip link set ${DEVICE} up
+ fi
+ fi
+
+ if [ -f /var/run/wpa_supplicant/${DEVICE} ]; then
+ echo "Stopping previous wpa_supplicant"
+ killall wpa_supplicant
+ rm /var/run/wpa_supplicant/${DEVICE}
+ fi
+
+ wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0
+ count=0
+ while ! wpa_cli -i wlan0 status | grep "wpa_state=COMPLETED"; do
+ echo "Waiting for wpa_supplicant to complete"
+ sleep 1
+
+ let count=count+1
+ if [ $count -gt 10 ]; then
+ echo "wpa_supplicant failure"
+ exit ${EXIT_CODE_WARNING}
+ fi
+ done
+
+ BOOTPROTO=dhcp
fi
if [ "x${BOOTPROTO}" = "xdhcp" ]; then