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 3558dc38bdSDevin Teskef_dialog_backtitle "FreeBSD Installer" 36bc4a673fSDevin Teske 37f18789d7SDevin Teske############################################################ FUNCTIONS 382118f387SNathan Whitehorn 394913f849SAndriy Voskoboinykcountry_set() 404913f849SAndriy Voskoboinyk{ 41bede0708SDevin Teske local error_str iface_up ifconfig_args= 424913f849SAndriy Voskoboinyk 4397a4c9f0SDevin Teske # 444913f849SAndriy Voskoboinyk # Setup what was selected 4597a4c9f0SDevin Teske # NB: Do not change order of arguments (or regdomain will be ignored) 4697a4c9f0SDevin Teske # 47114a587eSDevin Teske [ "$2" ] && ifconfig_args="$ifconfig_args country $2" 48114a587eSDevin Teske [ "$1" ] && ifconfig_args="$ifconfig_args regdomain $1" 49114a587eSDevin Teske [ "$ifconfig_args" ] || return $SUCCESS # Nothing to do 50114a587eSDevin Teske ifconfig_args="${ifconfig_args# }" 514913f849SAndriy Voskoboinyk 524913f849SAndriy Voskoboinyk # Regdomain/country cannot be applied while interface is running 5349748e0aSDevin Teske iface_up=$( ifconfig -lu | grep -w "$WLAN_IFACE" ) 5449748e0aSDevin Teske [ "$iface_up" ] && ifconfig "$WLAN_IFACE" down 559a46c67aSDevin Teske f_eval_catch -dk error_str wlanconfig ifconfig "ifconfig %s %s" \ 569a46c67aSDevin Teske "$WLAN_IFACE" "$ifconfig_args" 579a46c67aSDevin Teske error_str="${error_str#ifconfig: }" 584913f849SAndriy Voskoboinyk # Restart wpa_supplicant(8) (should not fail). 5994f5aec6SDevin Teske [ "$iface_up" ] && f_eval_catch -d wlanconfig wpa_supplicant \ 6094f5aec6SDevin Teske 'wpa_supplicant -B -i "%s" -c "%s/wpa_supplicant.conf"' \ 6194f5aec6SDevin Teske "$WLAN_IFACE" "$BSDINSTALL_TMPETC" 6238a99423SDevin Teske if [ "$error_str" ]; then 63ea2e60b0SDevin Teske $DIALOG \ 64d124dfc4SDevin Teske --title "$msg_error" \ 657797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 662abc4c24SDevin Teske --yes-label Change \ 672abc4c24SDevin Teske --no-label Ignore \ 682abc4c24SDevin Teske --yesno \ 692abc4c24SDevin Teske "Error while applying chosen settings ($error_str)" \ 706e038cc2SDevin Teske 0 0 || return $SUCCESS # Skip 714913f849SAndriy Voskoboinyk return $FAILURE # Restart 724913f849SAndriy Voskoboinyk else 73b5938e7dSDevin Teske awk 'sub(/^\t\t/,"")||1' \ 74b5938e7dSDevin Teske > "$BSDINSTALL_TMPETC/rc.conf.net.wlan" <<-EOF 75b5938e7dSDevin Teske create_args_$WLAN_IFACE="$ifconfig_args" 76b5938e7dSDevin Teske EOF 774913f849SAndriy Voskoboinyk fi 784913f849SAndriy Voskoboinyk 794913f849SAndriy Voskoboinyk return $SUCCESS 804913f849SAndriy Voskoboinyk} 814913f849SAndriy Voskoboinyk 824913f849SAndriy Voskoboinykdialog_country_select() 834913f849SAndriy Voskoboinyk{ 841c612112SDevin Teske local input regdomains countries regdomain country prompt 8548e9fce2SDevin Teske local no_default="<not selected>" 8671ef4d58SDevin Teske local default_regdomain="${1:-$no_default}" 8771ef4d58SDevin Teske local default_country="${2:-$no_default}" 884913f849SAndriy Voskoboinyk 8997a4c9f0SDevin Teske # 904913f849SAndriy Voskoboinyk # Parse available countries/regdomains 9197a4c9f0SDevin Teske # 9249748e0aSDevin Teske input=$( ifconfig "$WLAN_IFACE" list countries | sed -e 's/DEBUG//gi' ) 9395ee591eSDevin Teske regdomains=$( echo "$input" | awk ' 9495ee591eSDevin Teske sub(/.*domains:/, ""), /[^[:alnum:][[:space:]]/ { 9595ee591eSDevin Teske n = split($0, domains) 9695ee591eSDevin Teske for (i = 1; i <= n; i++) 9795ee591eSDevin Teske printf "'\''%s'\'' '\'\''", domains[i] 9895ee591eSDevin Teske } 99d401d36cSDevin Teske ' | sort ) 100e7f2eb12SDevin Teske countries=$( echo "$input" | awk ' 101e7f2eb12SDevin Teske sub(/Country codes:/, ""), sub(/Regulatory.*/, "") { 102e7f2eb12SDevin Teske while (match($0, /[[:upper:]][[:upper:][:digit:]] /)) { 103e7f2eb12SDevin Teske country = substr($0, RSTART) 104e7f2eb12SDevin Teske sub(/ [[:upper:]][[:upper:][:digit:]].*/, "", country) 105e7f2eb12SDevin Teske code = substr(country, 1, 2) 106e7f2eb12SDevin Teske desc = substr(country, 4) 107e7f2eb12SDevin Teske sub(/[[:space:]]*$/, "", desc) 108e7f2eb12SDevin Teske printf "'\''%s'\'' '\''%s'\''\n", code, desc 109e7f2eb12SDevin Teske $0 = substr($0, RSTART + RLENGTH) 1104913f849SAndriy Voskoboinyk } 111e7f2eb12SDevin Teske } 112e7f2eb12SDevin Teske ' | sort ) 1134913f849SAndriy Voskoboinyk 11458ce2edcSDevin Teske f_dialog_title "Regdomain selection" 1151c612112SDevin Teske prompt="Select your regdomain." 11695ee591eSDevin Teske eval f_dialog_menu_size height width rows \ 11795ee591eSDevin Teske \"\$DIALOG_TITLE\" \"\$DIALOG_BACKTITLE\" \ 11895ee591eSDevin Teske \"\$prompt\" \"\" $regdomains 11995ee591eSDevin Teske regdomain=$( eval $DIALOG \ 12095ee591eSDevin Teske --title \"\$DIALOG_TITLE\" \ 12195ee591eSDevin Teske --backtitle \"\$DIALOG_BACKTITLE\" \ 12295ee591eSDevin Teske --cancel-label \"\$msg_skip\" \ 12395ee591eSDevin Teske --default-item \"\$default_regdomain\" \ 12495ee591eSDevin Teske --menu \"\$prompt\" \ 12595ee591eSDevin Teske $height $width $rows \ 12695ee591eSDevin Teske $regdomains \ 12795ee591eSDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 12876b07bd9SDevin Teske ) 129f52733d4SDevin Teske f_dialog_data_sanitize regdomain 1304913f849SAndriy Voskoboinyk 13158ce2edcSDevin Teske f_dialog_title "Country selection" 1321c612112SDevin Teske prompt="Select your country." 133e7f2eb12SDevin Teske eval f_dialog_menu_size height width rows \ 134e7f2eb12SDevin Teske \"\$DIALOG_TITLE\" \"\$DIALOG_BACKTITLE\" \ 1351c612112SDevin Teske \"\$prompt\" \"\" $countries 136e7f2eb12SDevin Teske country=$( eval $DIALOG \ 137e7f2eb12SDevin Teske --title \"\$DIALOG_TITLE\" \ 138e7f2eb12SDevin Teske --backtitle \"\$DIALOG_BACKTITLE\" \ 139e7f2eb12SDevin Teske --cancel-label \"\$msg_skip\" \ 140e2577019SDevin Teske --default-item \"\$default_country\" \ 1411c612112SDevin Teske --menu \"\$prompt\" \ 142e7f2eb12SDevin Teske $height $width $rows \ 143e7f2eb12SDevin Teske $countries \ 144e7f2eb12SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 14576b07bd9SDevin Teske ) 146f52733d4SDevin Teske f_dialog_data_sanitize country 1474913f849SAndriy Voskoboinyk 1484913f849SAndriy Voskoboinyk country_set "$regdomain" "$country" 1494913f849SAndriy Voskoboinyk} 1504913f849SAndriy Voskoboinyk 151f18789d7SDevin Teske############################################################ MAIN 152f18789d7SDevin Teske 1534fa8c81cSDevin Teske: > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" 1548d5182d6SDevin Teskechmod 0600 "$BSDINSTALL_TMPETC/wpa_supplicant.conf" 155f18789d7SDevin Teske 156b5938e7dSDevin Teskecat >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" << EOF 157b5938e7dSDevin Teskectrl_interface=/var/run/wpa_supplicant 158b5938e7dSDevin Teskeeapol_version=2 159b5938e7dSDevin Teskeap_scan=1 160b5938e7dSDevin Teskefast_reauth=1 161b5938e7dSDevin Teske 162b5938e7dSDevin TeskeEOF 163f18789d7SDevin Teske 16497a4c9f0SDevin Teske# 165f18789d7SDevin Teske# Try to reach wpa_supplicant. If it isn't running and we can modify the 166f18789d7SDevin Teske# existing system, start it. Otherwise, fail. 16797a4c9f0SDevin Teske# 1689a46c67aSDevin Teskeif ! f_eval_catch -d wlanconfig wpa_cli "wpa_cli ping"; then 1690724c87cSDevin Teske if [ ! "$BSDINSTALL_CONFIGCURRENT" ]; then 1701d92999cSDevin Teske f_show_err "Wireless cannot be configured without %s" \ 1711d92999cSDevin Teske "making changes to the local system!" 1720724c87cSDevin Teske exit 1 1730724c87cSDevin Teske fi 1749a46c67aSDevin Teske f_eval_catch wlanconfig wpa_supplicant \ 1759a46c67aSDevin Teske 'wpa_supplicant -B -i "%s" -c "%s/wpa_supplicant.conf"' \ 1769a46c67aSDevin Teske "$1" "$BSDINSTALL_TMPETC" || exit 1 177f18789d7SDevin Teske 1786ef8ca67SDevin Teske # See if we succeeded 1799a46c67aSDevin Teske f_eval_catch wlanconfig wpa_cli "wpa_cli ping" || exit 1 1806b77f63eSDevin Teskefi 1816b77f63eSDevin 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 188a7cc5680SDevin Teske WLAN_IFACE=$( wpa_cli ifname | tail -n 1 ) 189a7cc5680SDevin Teske INPUT=$( ifconfig "$WLAN_IFACE" list regdomain | head -n 1 ) 19066ef7d94SDevin Teske DEF_REGDOMAIN=$( echo "$INPUT" | cut -w -f 2 ) 19166ef7d94SDevin Teske DEF_COUNTRY=$( echo "$INPUT" | cut -w -f 4 ) 192c62801e2SDevin Teske [ "$DEF_REGDOMAIN" = 0 ] && DEF_REGDOMAIN="<not selected>" 1930b04945dSDevin Teske [ "$DEF_COUNTRY" = 0 ] && DEF_COUNTRY="<not selected>" 19458ce2edcSDevin Teske f_dialog_title "Regdomain/country" 195b46ca7ceSDevin Teske if f_yesno "Change regdomain/country ($DEF_REGDOMAIN/$DEF_COUNTRY)?" 196a9d33421SDevin Teske then 197afcce2f5SDevin Teske while ! dialog_country_select "$DEF_REGDOMAIN" "$DEF_COUNTRY" 198afcce2f5SDevin Teske do :; done 1994913f849SAndriy Voskoboinyk fi 2004913f849SAndriy Voskoboinykfi 2014913f849SAndriy Voskoboinyk 20276b07bd9SDevin Teskewhile :; do 2033220bdd8SDevin Teske SCANSSID=0 2049a46c67aSDevin Teske f_eval_catch -d wlanconfig wpa_cli "wpa_cli scan" 20558ce2edcSDevin Teske f_dialog_title "Scanning" 2067e1166deSDevin Teske f_dialog_pause "Waiting 5 seconds to scan for wireless networks..." 5 || 2077e1166deSDevin Teske exit 1 2082118f387SNathan Whitehorn 2099a46c67aSDevin Teske f_eval_catch -dk SCAN_RESULTS wlanconfig wpa_cli "wpa_cli scan_results" 2102abc4c24SDevin Teske NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' 211be094a32SDevin Teske /..:..:..:..:..:../ && $5 { printf "\"%s\"\t\"%s\"\n", $5, $4 } 2122abc4c24SDevin Teske ' | sort | uniq ) 2132118f387SNathan Whitehorn 21438a99423SDevin Teske if [ ! "$NETWORKS" ]; then 215d124dfc4SDevin Teske f_dialog_title "$msg_error" 216d79a1355SDevin Teske f_yesno "No wireless networks were found. Rescan?" && continue 2172118f387SNathan Whitehorn exit 1 2182118f387SNathan Whitehorn fi 2192118f387SNathan Whitehorn 22058ce2edcSDevin Teske f_dialog_title "Network Selection" 221d5fddc4dSDevin Teske prompt="Select a wireless network to connect to." 222b9f60abaSDevin Teske f_dialog_menu_size height width rows "$DIALOG_TITLE" \ 223b9f60abaSDevin Teske "$DIALOG_BACKTITLE" "$prompt" "" $menu_list 224d5fddc4dSDevin Teske NETWORK=$( eval $DIALOG \ 225d5fddc4dSDevin Teske --title \"\$DIALOG_TITLE\" \ 226d5fddc4dSDevin Teske --backtitle \"\$DIALOG_BACKTITLE\" \ 2272abc4c24SDevin Teske --extra-button \ 2282abc4c24SDevin Teske --extra-label \"Rescan\" \ 229d5fddc4dSDevin Teske --menu \"\$prompt\" \ 230d5fddc4dSDevin Teske $height $width $rows \ 231f3a8471eSDevin Teske $NETWORKS \ 232877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 2332abc4c24SDevin Teske ) 234f52733d4SDevin Teske retval=$? 235f52733d4SDevin Teske f_dialog_data_sanitize NETWORK 236f52733d4SDevin Teske case $retval in 23710458583SDevin Teske $DIALOG_OK) break ;; 2385357f8f7SDevin Teske $DIALOG_CANCEL) 23935af83c1SDevin Teske # Ask if the user wants to select network manually 2403220bdd8SDevin Teske f_dialog_title "Network Selection" 241a5119576SDevin Teske f_yesno "Do you want to select the network manually?" || exit 1 2423220bdd8SDevin Teske f_dialog_input NETWORK "Enter SSID" || exit 1 243d5fddc4dSDevin Teske prompt="Select encryption type" 244d5fddc4dSDevin Teske menu_list=" 245d5fddc4dSDevin Teske '1 WPA/WPA2 PSK' '' 246d5fddc4dSDevin Teske '2 WPA/WPA2 EAP' '' 247d5fddc4dSDevin Teske '3 WEP' '' 248d5fddc4dSDevin Teske '0 None' '' 249d5fddc4dSDevin Teske " # END-QUOTE 250d5fddc4dSDevin Teske eval f_dialog_menu_size height width rows \"\$DIALOG_TITLE\" \ 251d5fddc4dSDevin Teske \"\$DIALOG_BACKTITLE\" \"\$prompt\" \"\" $menu_list 252d5fddc4dSDevin Teske ENCRYPTION=$( eval $DIALOG \ 253d5fddc4dSDevin Teske --title \"\$DIALOG_TITLE\" \ 254d5fddc4dSDevin Teske --backtitle \"\$DIALOG_BACKTITLE\" \ 255d5fddc4dSDevin Teske --menu \"\$prompt\" \ 256d5fddc4dSDevin Teske $height $width $rows \ 257d5fddc4dSDevin Teske $menu_list \ 258877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 2592abc4c24SDevin Teske ) || exit 1 2603220bdd8SDevin Teske SCANSSID=1 2613220bdd8SDevin Teske break 2622118f387SNathan Whitehorn ;; 2635357f8f7SDevin Teske $DIALOG_EXTRA) # Rescan 2642118f387SNathan Whitehorn ;; 2652118f387SNathan Whitehorn esac 2664913f849SAndriy Voskoboinykdone 2672118f387SNathan Whitehorn 2682abc4c24SDevin Teske[ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | 26901a2404cSDevin Teske awk -F '\t' "/^\"$NETWORK\"\t/ { print \$2 }" ) 2702118f387SNathan Whitehorn 2717599c854SDevin Teskeif echo "$ENCRYPTION" | grep -q PSK; then 272ea2e60b0SDevin Teske PASS=$( $DIALOG \ 2732abc4c24SDevin Teske --title "WPA Setup" \ 2747797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 2757797a597SDevin Teske --insecure \ 2762abc4c24SDevin Teske --mixedform "" \ 2772abc4c24SDevin Teske 0 0 0 \ 2782118f387SNathan Whitehorn "SSID" 1 0 "$NETWORK" 1 12 0 0 2 \ 279a4de89deSChristian Brueffer "Password" 2 0 "" 2 12 15 63 1 \ 280877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 281bef42d18SDevin Teske ) || exec "$0" "$@" 282b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 283*850b25abSEd Maste >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<EOF 284b5938e7dSDevin Teskenetwork={ 285b5938e7dSDevin Teske ssid="$NETWORK" 2863220bdd8SDevin Teske scan_ssid=$SCANSSID 287b5938e7dSDevin Teske psk="$PASS" 2882118f387SNathan Whitehorn priority=5 289b5938e7dSDevin Teske} 290b5938e7dSDevin TeskeEOF 2911095816eSDevin Teskeelif echo "$ENCRYPTION" | grep -q EAP; then 292ea2e60b0SDevin Teske USERPASS=$( $DIALOG \ 2932abc4c24SDevin Teske --title "WPA-Enterprise Setup" \ 2947797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 2957797a597SDevin Teske --insecure \ 29610458583SDevin Teske --mixedform "" \ 29710458583SDevin Teske 0 0 0 \ 298093b9154SGavin Atkinson "SSID" 1 0 "$NETWORK" 1 12 0 0 2 \ 299093b9154SGavin Atkinson "Username" 2 0 "" 2 12 25 63 0 \ 300093b9154SGavin Atkinson "Password" 3 0 "" 3 12 25 63 1 \ 301877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 302bef42d18SDevin Teske ) || exec "$0" "$@" 303b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 304*850b25abSEd Maste >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<EOF 305b5938e7dSDevin Teskenetwork={ 306b5938e7dSDevin Teske ssid="$NETWORK" 3073220bdd8SDevin Teske scan_ssid=$SCANSSID 308b5938e7dSDevin Teske key_mgmt=WPA-EAP$( 309093b9154SGavin Atkinson echo "$USERPASS" | awk ' 3108bcf5646SDevin Teske NR == 1 { printf "\n\t\tidentity=\"%s\"", $1 } 3118bcf5646SDevin Teske NR == 2 { printf "\n\t\tpassword=\"%s\"", $1 } 3120b8f01feSDevin Teske ' ) 313b5938e7dSDevin Teske priority=5 314b5938e7dSDevin Teske} 315b5938e7dSDevin TeskeEOF 3161095816eSDevin Teskeelif echo "$ENCRYPTION" | grep -q WEP; then 317ea2e60b0SDevin Teske WEPKEY=$( $DIALOG \ 3182abc4c24SDevin Teske --title "WEP Setup" \ 3197797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 3207797a597SDevin Teske --insecure \ 32110458583SDevin Teske --mixedform "" \ 32210458583SDevin Teske 0 0 0 \ 3232118f387SNathan Whitehorn "SSID" 1 0 "$NETWORK" 1 12 0 0 2 \ 3242118f387SNathan Whitehorn "WEP Key 0" 2 0 "" 2 12 15 0 1 \ 325877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 326bef42d18SDevin Teske ) || exec "$0" "$@" 327b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 328*850b25abSEd Maste >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<EOF 329b5938e7dSDevin Teskenetwork={ 330b5938e7dSDevin Teske ssid="$NETWORK" 3313220bdd8SDevin Teske scan_ssid=$SCANSSID 3322118f387SNathan Whitehorn key_mgmt=NONE 333b5938e7dSDevin Teske wep_key0="$WEPKEY" 3342118f387SNathan Whitehorn wep_tx_keyidx=0 3352118f387SNathan Whitehorn priority=5 336b5938e7dSDevin Teske} 337b5938e7dSDevin TeskeEOF 3382118f387SNathan Whitehornelse # Open 339b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 340*850b25abSEd Maste >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<EOF 341b5938e7dSDevin Teskenetwork={ 342b5938e7dSDevin Teske ssid="$NETWORK" 3433220bdd8SDevin Teske scan_ssid=$SCANSSID 3442118f387SNathan Whitehorn key_mgmt=NONE 3452118f387SNathan Whitehorn priority=5 346b5938e7dSDevin Teske} 347b5938e7dSDevin TeskeEOF 3482118f387SNathan Whitehornfi 3492118f387SNathan Whitehorn 3502118f387SNathan Whitehorn# Connect to any open networks policy 351b5938e7dSDevin Teskecat >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" << EOF 352b5938e7dSDevin Teskenetwork={ 353ebffa060SGavin Atkinson priority=0 3542118f387SNathan Whitehorn key_mgmt=NONE 355b5938e7dSDevin Teske} 356b5938e7dSDevin TeskeEOF 3572118f387SNathan Whitehorn 3582118f387SNathan Whitehorn# Bring up new network 35919dbb0baSDevin Teske[ "$BSDINSTALL_CONFIGCURRENT" ] && 3609a46c67aSDevin Teske f_eval_catch -d wlanconfig wpa_cli "wpa_cli reconfigure" 3612118f387SNathan Whitehorn 3620a835493SDevin Teskeexit $SUCCESS 363bc4a673fSDevin Teske 364bc4a673fSDevin Teske################################################################################ 365bc4a673fSDevin Teske# END 366bc4a673fSDevin Teske################################################################################ 367