xref: /freebsd/usr.sbin/bsdinstall/scripts/wlanconfig (revision bede07080544af02df006ee99cb0c42a45f70b4c)
12118f387SNathan Whitehorn#!/bin/sh
22118f387SNathan Whitehorn#-
32118f387SNathan Whitehorn# Copyright (c) 2011 Nathan Whitehorn
4f18789d7SDevin Teske# Copyright (c) 2013-2016 Devin Teske
52118f387SNathan Whitehorn# All rights reserved.
62118f387SNathan Whitehorn#
72118f387SNathan Whitehorn# Redistribution and use in source and binary forms, with or without
82118f387SNathan Whitehorn# modification, are permitted provided that the following conditions
92118f387SNathan Whitehorn# are met:
102118f387SNathan Whitehorn# 1. Redistributions of source code must retain the above copyright
112118f387SNathan Whitehorn#    notice, this list of conditions and the following disclaimer.
122118f387SNathan Whitehorn# 2. Redistributions in binary form must reproduce the above copyright
132118f387SNathan Whitehorn#    notice, this list of conditions and the following disclaimer in the
142118f387SNathan Whitehorn#    documentation and/or other materials provided with the distribution.
152118f387SNathan Whitehorn#
162118f387SNathan Whitehorn# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
172118f387SNathan Whitehorn# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
182118f387SNathan Whitehorn# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
192118f387SNathan Whitehorn# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
202118f387SNathan Whitehorn# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
212118f387SNathan Whitehorn# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
222118f387SNathan Whitehorn# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
232118f387SNathan Whitehorn# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
242118f387SNathan Whitehorn# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
252118f387SNathan Whitehorn# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
262118f387SNathan Whitehorn# SUCH DAMAGE.
272118f387SNathan Whitehorn#
282118f387SNathan Whitehorn# $FreeBSD$
29bc4a673fSDevin Teske#
30bc4a673fSDevin Teske############################################################ INCLUDES
31bc4a673fSDevin Teske
32bc4a673fSDevin TeskeBSDCFG_SHARE="/usr/share/bsdconfig"
33bc4a673fSDevin Teske. $BSDCFG_SHARE/common.subr || exit 1
344913f849SAndriy Voskoboinykf_include $BSDCFG_SHARE/dialog.subr
35bc4a673fSDevin Teske
36f18789d7SDevin Teske############################################################ FUNCTIONS
372118f387SNathan Whitehorn
384913f849SAndriy Voskoboinykcountry_set()
394913f849SAndriy Voskoboinyk{
40*bede0708SDevin Teske	local error_str iface_up ifconfig_args=
414913f849SAndriy Voskoboinyk
4297a4c9f0SDevin Teske	#
434913f849SAndriy Voskoboinyk	# Setup what was selected
4497a4c9f0SDevin Teske	# NB: Do not change order of arguments (or regdomain will be ignored)
4597a4c9f0SDevin Teske	#
4638a99423SDevin Teske	if [ "$2" ]; then
474913f849SAndriy Voskoboinyk		ifconfig_args="${ifconfig_args}country $2"
484913f849SAndriy Voskoboinyk	fi
4938a99423SDevin Teske	if [ "$1" ]; then
5038a99423SDevin Teske		if [ "$2" ]; then
514913f849SAndriy Voskoboinyk			ifconfig_args="${ifconfig_args} "
524913f849SAndriy Voskoboinyk		fi
534913f849SAndriy Voskoboinyk		ifconfig_args="${ifconfig_args}regdomain $1"
544913f849SAndriy Voskoboinyk	fi
5538a99423SDevin Teske	if [ ! "$ifconfig_args" ]; then
564913f849SAndriy Voskoboinyk		# Nothing to do (everything was skipped)
574913f849SAndriy Voskoboinyk		return $SUCCESS
584913f849SAndriy Voskoboinyk	fi
594913f849SAndriy Voskoboinyk
604913f849SAndriy Voskoboinyk	# Regdomain/country cannot be applied while interface is running
61138ab67aSDevin Teske	iface_up=$( ifconfig -lu | grep -w $WLAN_IFACE )
6238a99423SDevin Teske	if [ "$iface_up" ]; then
634913f849SAndriy Voskoboinyk		ifconfig $WLAN_IFACE down
644913f849SAndriy Voskoboinyk	fi
65138ab67aSDevin Teske	error_str=$( ifconfig $WLAN_IFACE $ifconfig_args 2>&1 |
66138ab67aSDevin Teske		sed 's/ifconfig: //' )
6738a99423SDevin Teske	if [ "$iface_up" ]; then
684913f849SAndriy Voskoboinyk		# Restart wpa_supplicant(8) (should not fail).
694913f849SAndriy Voskoboinyk		wpa_supplicant -B -i $WLAN_IFACE -c \
704913f849SAndriy Voskoboinyk		    $BSDINSTALL_TMPETC/wpa_supplicant.conf
714913f849SAndriy Voskoboinyk	fi
7238a99423SDevin Teske	if [ "$error_str" ]; then
734913f849SAndriy Voskoboinyk		dialog --backtitle "FreeBSD Installer" --title "Error" \
744913f849SAndriy Voskoboinyk		    --yes-label Change --no-label Ignore --yesno \
754913f849SAndriy Voskoboinyk		    "Error while applying chosen settings ($error_str)" 0 0
764913f849SAndriy Voskoboinyk		if [ $? -eq $DIALOG_OK ]; then
774913f849SAndriy Voskoboinyk			return $FAILURE # Restart
784913f849SAndriy Voskoboinyk		else
794913f849SAndriy Voskoboinyk			return $SUCCESS # Skip
804913f849SAndriy Voskoboinyk		fi
814913f849SAndriy Voskoboinyk	else
824913f849SAndriy Voskoboinyk		: > $BSDINSTALL_TMPETC/rc.conf.net.wlan
834913f849SAndriy Voskoboinyk		echo create_args_$WLAN_IFACE=\"$ifconfig_args\" >> \
844913f849SAndriy Voskoboinyk		    $BSDINSTALL_TMPETC/rc.conf.net.wlan
854913f849SAndriy Voskoboinyk	fi
864913f849SAndriy Voskoboinyk
874913f849SAndriy Voskoboinyk	return $SUCCESS
884913f849SAndriy Voskoboinyk}
894913f849SAndriy Voskoboinyk
904913f849SAndriy Voskoboinykdialog_country_select()
914913f849SAndriy Voskoboinyk{
92*bede0708SDevin Teske	local input regdomains countries regdomain country
934913f849SAndriy Voskoboinyk	local def_item_regdomain=
944913f849SAndriy Voskoboinyk	local def_item_country=
954913f849SAndriy Voskoboinyk
9697a4c9f0SDevin Teske	#
974913f849SAndriy Voskoboinyk	# Parse available countries/regdomains
9897a4c9f0SDevin Teske	#
99138ab67aSDevin Teske	input=$( ifconfig $WLAN_IFACE list countries | sed 's/DEBUG//gi' )
100138ab67aSDevin Teske	regdomains=$( echo $input | sed 's/.*domains://' | tr ' ' '\n' |
101138ab67aSDevin Teske		sort | tr '\n' ' ' )
102138ab67aSDevin Teske	countries=$( echo $input | sed 's/Country codes://' |
1034913f849SAndriy Voskoboinyk	    sed 's/Regulatory.*//' | awk '{
1044913f849SAndriy Voskoboinyk		for (i = 1; i <= NF; i++) {
1054913f849SAndriy Voskoboinyk			printf "%s", $i
1064913f849SAndriy Voskoboinyk			if (match($i, "[[:lower:]]"))
1074913f849SAndriy Voskoboinyk				if (match($(i+1), "[[:lower:]]"))
1084913f849SAndriy Voskoboinyk					printf "\\\\\\ "
1094913f849SAndriy Voskoboinyk				else
1104913f849SAndriy Voskoboinyk					printf "\n"
1114913f849SAndriy Voskoboinyk			else
1124913f849SAndriy Voskoboinyk				printf " "
1134913f849SAndriy Voskoboinyk		}
114138ab67aSDevin Teske	    }' | sort -k 2 | tr '\n' ' ' )
1154913f849SAndriy Voskoboinyk
1164913f849SAndriy Voskoboinyk	# Change default cursor position (if required).
1174913f849SAndriy Voskoboinyk	if [ "$1" != "<not selected>" ]; then
1184913f849SAndriy Voskoboinyk		def_item_regdomain="--default-item $1"
1194913f849SAndriy Voskoboinyk	fi
1204913f849SAndriy Voskoboinyk	if [ "$2" != "<not selected>" ]; then
1214913f849SAndriy Voskoboinyk		def_item_country="--default-item $2"
1224913f849SAndriy Voskoboinyk	fi
1234913f849SAndriy Voskoboinyk
1244913f849SAndriy Voskoboinyk	f_dialog_menu_size height width rows \"Regdomain selection\" \
1254913f849SAndriy Voskoboinyk	    \"FreeBSD Installer\" \"Select your regdomain.\" \
1264913f849SAndriy Voskoboinyk	    \"\" $regdomains
127138ab67aSDevin Teske	regdomain=$( sh -c "dialog \
1284913f849SAndriy Voskoboinyk	    --backtitle \"FreeBSD Installer\" \
1294913f849SAndriy Voskoboinyk	    --title \"Regdomain selection\" \
1304913f849SAndriy Voskoboinyk	    --cancel-label \"Skip\" \
1314913f849SAndriy Voskoboinyk	    $def_item_regdomain \
1324913f849SAndriy Voskoboinyk	    --no-items \
1334913f849SAndriy Voskoboinyk	    --stdout \
1344913f849SAndriy Voskoboinyk	    --menu \"Select your regdomain.\" \
135138ab67aSDevin Teske	    $height $width $rows $regdomains" )
1364913f849SAndriy Voskoboinyk
1374913f849SAndriy Voskoboinyk	f_dialog_menu_size height width rows \"Country selection\" \
1384913f849SAndriy Voskoboinyk	    \"FreeBSD Installer\" \"Select your country.\" \
1394913f849SAndriy Voskoboinyk	    \"\" $countries
140138ab67aSDevin Teske	country=$( sh -c "dialog \
1414913f849SAndriy Voskoboinyk	    --backtitle \"FreeBSD Installer\" \
1424913f849SAndriy Voskoboinyk	    --title \"Country selection\" \
1434913f849SAndriy Voskoboinyk	    --cancel-label \"Skip\" \
1444913f849SAndriy Voskoboinyk	    $def_item_country \
1454913f849SAndriy Voskoboinyk	    --stdout \
1464913f849SAndriy Voskoboinyk	    --menu \"Select your country.\" \
147138ab67aSDevin Teske	    $height $width $rows $countries" )
1484913f849SAndriy Voskoboinyk
1494913f849SAndriy Voskoboinyk	country_set "$regdomain" "$country"
1504913f849SAndriy Voskoboinyk
1514913f849SAndriy Voskoboinyk	return $?
1524913f849SAndriy Voskoboinyk}
1534913f849SAndriy Voskoboinyk
154f18789d7SDevin Teske############################################################ MAIN
155f18789d7SDevin Teske
156f18789d7SDevin Teskeecho -n > $BSDINSTALL_TMPETC/wpa_supplicant.conf
157f18789d7SDevin Teskechmod 0600 $BSDINSTALL_TMPETC/wpa_supplicant.conf
158f18789d7SDevin Teske
159f18789d7SDevin Teskeecho "ctrl_interface=/var/run/wpa_supplicant" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
160f18789d7SDevin Teskeecho "eapol_version=2" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
161f18789d7SDevin Teskeecho "ap_scan=1" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
162f18789d7SDevin Teskeecho "fast_reauth=1" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
163f18789d7SDevin Teskeecho >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
164f18789d7SDevin Teske
16597a4c9f0SDevin Teske#
166f18789d7SDevin Teske# Try to reach wpa_supplicant. If it isn't running and we can modify the
167f18789d7SDevin Teske# existing system, start it. Otherwise, fail.
16897a4c9f0SDevin Teske#
16938a99423SDevin Teske(wpa_cli ping >/dev/null 2>/dev/null || ([ "$BSDINSTALL_CONFIGCURRENT" ] &&
170f18789d7SDevin Teske	wpa_supplicant -B -i $1 -c $BSDINSTALL_TMPETC/wpa_supplicant.conf)) ||
171f18789d7SDevin Teske	(dialog --backtitle "FreeBSD Installer" --title "Error" --msgbox \
172f18789d7SDevin Teske	"Could not start wpa_supplicant!" 0 0; exit 1) || exit 1
173f18789d7SDevin Teske
174f18789d7SDevin Teske# See if we succeeded
175f18789d7SDevin Teskewpa_cli ping >/dev/null 2>/dev/null
17638a99423SDevin Teskeif [ $? -ne 0 -a ! "$BSDINSTALL_CONFIGCURRENT" ]; then
177f18789d7SDevin Teske	dialog --backtitle "FreeBSD Installer" --title "Error" --msgbox \
178f18789d7SDevin Teske	"Wireless cannot be configured without making changes to the local system!" \ 0 0
179f18789d7SDevin Teske	exit 1
180f18789d7SDevin Teskefi
181f18789d7SDevin Teske
18297a4c9f0SDevin Teske#
1834913f849SAndriy Voskoboinyk# There is no way to check country/regdomain without (possible)
1844913f849SAndriy Voskoboinyk# interface state modification
18597a4c9f0SDevin Teske#
18638a99423SDevin Teskeif [ "$BSDINSTALL_CONFIGCURRENT" ]; then
1874913f849SAndriy Voskoboinyk	# Get current country/regdomain for selected interface
188138ab67aSDevin Teske	WLAN_IFACE=$( wpa_cli ifname | tail -n 1 )
189138ab67aSDevin Teske	INPUT=$( ifconfig $WLAN_IFACE list regdomain | head -n 1 )
190138ab67aSDevin Teske	DEF_REGDOMAIN=$( echo $INPUT | cut -w -f 2 )
1914913f849SAndriy Voskoboinyk	if [ "$DEF_REGDOMAIN" = "0" ]; then
1924913f849SAndriy Voskoboinyk		DEF_REGDOMAIN="<not selected>"
1934913f849SAndriy Voskoboinyk	fi
194138ab67aSDevin Teske	DEF_COUNTRY=$( echo $INPUT | cut -w -f 4 )
1954913f849SAndriy Voskoboinyk	if [ "$DEF_COUNTRY" = "0" ]; then
1964913f849SAndriy Voskoboinyk		DEF_COUNTRY="<not selected>"
1974913f849SAndriy Voskoboinyk	fi
1984913f849SAndriy Voskoboinyk	dialog --backtitle "FreeBSD Installer" --title "Regdomain/country" \
1994913f849SAndriy Voskoboinyk	    --yesno "Change regdomain/country (now \
2004913f849SAndriy Voskoboinyk	    $DEF_REGDOMAIN/$DEF_COUNTRY)?" 0 0
2014913f849SAndriy Voskoboinyk	if [ $? -eq 0 ]; then
2024913f849SAndriy Voskoboinyk		while :
2034913f849SAndriy Voskoboinyk		do
2044913f849SAndriy Voskoboinyk			dialog_country_select "$DEF_REGDOMAIN" "$DEF_COUNTRY"
2054913f849SAndriy Voskoboinyk			if [ $? -eq $SUCCESS ]; then
2064913f849SAndriy Voskoboinyk				break
2074913f849SAndriy Voskoboinyk			fi
2084913f849SAndriy Voskoboinyk		done
2094913f849SAndriy Voskoboinyk	fi
2104913f849SAndriy Voskoboinykfi
2114913f849SAndriy Voskoboinyk
2124913f849SAndriy Voskoboinykwhile :
2134913f849SAndriy Voskoboinykdo
2143220bdd8SDevin Teske	SCANSSID=0
215bc4a673fSDevin Teske	output=$( wpa_cli scan 2>&1 )
216bc4a673fSDevin Teske	f_dprintf "%s" "$output"
2174913f849SAndriy Voskoboinyk	dialog --backtitle "FreeBSD Installer" --title "Scanning" \
2184913f849SAndriy Voskoboinyk	    --ok-label "Skip" \
2192118f387SNathan Whitehorn	    --pause "Waiting 5 seconds to scan for wireless networks..." \
2202118f387SNathan Whitehorn	    9 40 5 || exit 1
2212118f387SNathan Whitehorn
222138ab67aSDevin Teske	SCAN_RESULTS=$( wpa_cli scan_results )
223138ab67aSDevin Teske	NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' \
2244913f849SAndriy Voskoboinyk	   '/..:..:..:..:..:../ {if (length($5) > 0) \
225138ab67aSDevin Teske	   printf("\"%s\"\t%s\n", $5, $4);}' | sort | uniq )
2262118f387SNathan Whitehorn
22738a99423SDevin Teske	if [ ! "$NETWORKS" ]; then
2282118f387SNathan Whitehorn		dialog --backtitle "FreeBSD Installer" --title "Error" \
2293d2b0857SDevin Teske		    --yesno "No wireless networks were found. Rescan?" 0 0 &&
2304913f849SAndriy Voskoboinyk		    continue
2312118f387SNathan Whitehorn		exit 1
2322118f387SNathan Whitehorn	fi
2332118f387SNathan Whitehorn
2342118f387SNathan Whitehorn	exec 3>&1
235138ab67aSDevin Teske	NETWORK=$( sh -c "dialog --extra-button --extra-label \"Rescan\" \
2364913f849SAndriy Voskoboinyk	    --backtitle \"FreeBSD Installer\" --title \"Network Selection\" \
2374913f849SAndriy Voskoboinyk	    --menu \"Select a wireless network to connect to.\" 0 0 0 \
238138ab67aSDevin Teske	    $(echo $NETWORKS | tr '\n' ' ')" 2>&1 1>&3 )
2392118f387SNathan Whitehorn	case $? in
2402118f387SNathan Whitehorn	0)	# OK
2414913f849SAndriy Voskoboinyk		break
2422118f387SNathan Whitehorn		;;
2432118f387SNathan Whitehorn	1)	# Cancel
2443220bdd8SDevin Teske		# here we ask if the user wants to select the network manually
2453220bdd8SDevin Teske		f_dialog_title "Network Selection"
2463220bdd8SDevin Teske		f_dialog_yesno "Do you want to select the network manually?" || exit 1
2473220bdd8SDevin Teske		f_dialog_input NETWORK "Enter SSID" || exit 1
2483220bdd8SDevin Teske		ENCRYPTION=$( dialog --backtitle "$DIALOG_BACKTITLE" --title \
2493220bdd8SDevin Teske			"$DIALOG_TITLE" --menu "Select encryption type" 0 0 0 \
2503220bdd8SDevin Teske			"1 WPA/WPA2 PSK" "" "2 WPA/WPA2 EAP" "" "3 WEP" "" "0 None" "" 2>&1 1>&3 ) || exit 1
2513220bdd8SDevin Teske		SCANSSID=1
2523220bdd8SDevin Teske		f_dialog_title_restore
2533220bdd8SDevin Teske		break
2542118f387SNathan Whitehorn		;;
2552118f387SNathan Whitehorn	3)	# Rescan
2562118f387SNathan Whitehorn		;;
2572118f387SNathan Whitehorn	esac
2582118f387SNathan Whitehorn	exec 3>&-
2594913f849SAndriy Voskoboinykdone
2602118f387SNathan Whitehorn
26138a99423SDevin Teske[ ! "$ENCRYPTION" ] && ENCRYPTION=$( echo "$NETWORKS" | awk -F '\t' \
262138ab67aSDevin Teske    "/^\"$NETWORK\"\t/ {printf(\"%s\n\", \\\$2 );}" )
2632118f387SNathan Whitehorn
2642118f387SNathan Whitehornif echo $ENCRYPTION | grep -q 'PSK'; then
2652118f387SNathan Whitehorn	exec 3>&1
266138ab67aSDevin Teske	PASS=$( dialog --insecure --backtitle "FreeBSD Installer" \
2672118f387SNathan Whitehorn	    --title "WPA Setup" --mixedform "" 0 0 0 \
2682118f387SNathan Whitehorn		"SSID" 1 0 "$NETWORK" 1 12 0 0 2 \
269a4de89deSChristian Brueffer		"Password" 2 0 "" 2 12 15 63 1 \
270138ab67aSDevin Teske		2>&1 1>&3 ) \
2712118f387SNathan Whitehorn	|| exec $0 $@
2722118f387SNathan Whitehorn	exec 3>&-
2732118f387SNathan Whitehornecho "network={
2742118f387SNathan Whitehorn	ssid=\"$NETWORK\"
2753220bdd8SDevin Teske	scan_ssid=$SCANSSID
2762118f387SNathan Whitehorn	psk=\"$PASS\"
2772118f387SNathan Whitehorn	priority=5
2782118f387SNathan Whitehorn}" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
279093b9154SGavin Atkinsonelif echo $ENCRYPTION | grep -q EAP; then
280093b9154SGavin Atkinson	exec 3>&1
281138ab67aSDevin Teske	USERPASS=$( dialog --insecure --backtitle "FreeBSD Installer" \
282093b9154SGavin Atkinson	    --title "WPA-Enterprise Setup" --mixedform "" 0 0 0 \
283093b9154SGavin Atkinson		"SSID" 1 0 "$NETWORK" 1 12 0 0 2 \
284093b9154SGavin Atkinson		"Username" 2 0 "" 2 12 25 63 0 \
285093b9154SGavin Atkinson		"Password" 3 0 "" 3 12 25 63 1 \
286138ab67aSDevin Teske		2>&1 1>&3 ) \
287093b9154SGavin Atkinson	|| exec $0 $@
288093b9154SGavin Atkinson	exec 3>&-
289093b9154SGavin Atkinsonecho "network={
290093b9154SGavin Atkinson	ssid=\"$NETWORK\"
2913220bdd8SDevin Teske	scan_ssid=$SCANSSID
292093b9154SGavin Atkinson	key_mgmt=WPA-EAP" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
293093b9154SGavin Atkinsonecho "$USERPASS" | awk '
294093b9154SGavin Atkinson{
295093b9154SGavin Atkinson	if (NR == 1) {
296093b9154SGavin Atkinson		printf "	identity=\"%s\"\n", $1;
297093b9154SGavin Atkinson	} else if (NR == 2) {
298093b9154SGavin Atkinson		printf "	password=\"%s\"\n", $1;
299093b9154SGavin Atkinson	}
300093b9154SGavin Atkinson}' >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
301093b9154SGavin Atkinsonecho "	priority=5
302093b9154SGavin Atkinson}" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
3032118f387SNathan Whitehornelif echo $ENCRYPTION | grep -q WEP; then
3042118f387SNathan Whitehorn	exec 3>&1
305138ab67aSDevin Teske	WEPKEY=$( dialog --insecure --backtitle "FreeBSD Installer" \
3062118f387SNathan Whitehorn	    --title "WEP Setup" --mixedform "" 0 0 0 \
3072118f387SNathan Whitehorn		"SSID" 1 0 "$NETWORK" 1 12 0 0 2 \
3082118f387SNathan Whitehorn		"WEP Key 0" 2 0 "" 2 12 15 0 1 \
309138ab67aSDevin Teske		2>&1 1>&3 ) \
3102118f387SNathan Whitehorn	|| exec $0 $@
3112118f387SNathan Whitehornecho "network={
3122118f387SNathan Whitehorn	ssid=\"$NETWORK\"
3133220bdd8SDevin Teske	scan_ssid=$SCANSSID
3142118f387SNathan Whitehorn	key_mgmt=NONE
3152118f387SNathan Whitehorn	wep_key0=\"$WEPKEY\"
3162118f387SNathan Whitehorn	wep_tx_keyidx=0
3172118f387SNathan Whitehorn	priority=5
3182118f387SNathan Whitehorn}" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
3192118f387SNathan Whitehornelse	# Open
3202118f387SNathan Whitehornecho "network={
3212118f387SNathan Whitehorn	ssid=\"$NETWORK\"
3223220bdd8SDevin Teske	scan_ssid=$SCANSSID
3232118f387SNathan Whitehorn	key_mgmt=NONE
3242118f387SNathan Whitehorn	priority=5
3252118f387SNathan Whitehorn}" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
3262118f387SNathan Whitehornfi
3272118f387SNathan Whitehorn
3282118f387SNathan Whitehorn# Connect to any open networks policy
3292118f387SNathan Whitehornecho "network={
330ebffa060SGavin Atkinson	priority=0
3312118f387SNathan Whitehorn	key_mgmt=NONE
3322118f387SNathan Whitehorn}" >> $BSDINSTALL_TMPETC/wpa_supplicant.conf
3332118f387SNathan Whitehorn
3342118f387SNathan Whitehorn# Bring up new network
335bc4a673fSDevin Teskeif [ "$BSDINSTALL_CONFIGCURRENT" ]; then
336bc4a673fSDevin Teske	output=$( wpa_cli reconfigure 2>&1 )
337bc4a673fSDevin Teske	f_dprintf "%s" "$output"
338bc4a673fSDevin Teskefi
3392118f387SNathan Whitehorn
3400a835493SDevin Teskeexit $SUCCESS
341bc4a673fSDevin Teske
342bc4a673fSDevin Teske################################################################################
343bc4a673fSDevin Teske# END
344bc4a673fSDevin Teske################################################################################
345