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 53138ab67aSDevin Teske iface_up=$( ifconfig -lu | grep -w $WLAN_IFACE ) 54e2025334SDevin Teske [ "$iface_up" ] && ifconfig $WLAN_IFACE down 55138ab67aSDevin Teske error_str=$( ifconfig $WLAN_IFACE $ifconfig_args 2>&1 | 561cac9fc2SDevin Teske sed -e 's/ifconfig: //' ) 5738a99423SDevin Teske if [ "$iface_up" ]; then 584913f849SAndriy Voskoboinyk # Restart wpa_supplicant(8) (should not fail). 594913f849SAndriy Voskoboinyk wpa_supplicant -B -i $WLAN_IFACE -c \ 608d5182d6SDevin Teske "$BSDINSTALL_TMPETC/wpa_supplicant.conf" 614913f849SAndriy Voskoboinyk fi 6238a99423SDevin Teske if [ "$error_str" ]; then 63ea2e60b0SDevin Teske $DIALOG \ 642abc4c24SDevin Teske --title "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)" \ 702abc4c24SDevin Teske 0 0 714913f849SAndriy Voskoboinyk if [ $? -eq $DIALOG_OK ]; then 724913f849SAndriy Voskoboinyk return $FAILURE # Restart 734913f849SAndriy Voskoboinyk else 744913f849SAndriy Voskoboinyk return $SUCCESS # Skip 754913f849SAndriy Voskoboinyk fi 764913f849SAndriy Voskoboinyk else 77b5938e7dSDevin Teske awk 'sub(/^\t\t/,"")||1' \ 78b5938e7dSDevin Teske > "$BSDINSTALL_TMPETC/rc.conf.net.wlan" <<-EOF 79b5938e7dSDevin Teske create_args_$WLAN_IFACE="$ifconfig_args" 80b5938e7dSDevin Teske EOF 814913f849SAndriy Voskoboinyk fi 824913f849SAndriy Voskoboinyk 834913f849SAndriy Voskoboinyk return $SUCCESS 844913f849SAndriy Voskoboinyk} 854913f849SAndriy Voskoboinyk 864913f849SAndriy Voskoboinykdialog_country_select() 874913f849SAndriy Voskoboinyk{ 88bede0708SDevin Teske local input regdomains countries regdomain country 8948e9fce2SDevin Teske local no_default="<not selected>" 9071ef4d58SDevin Teske local default_regdomain="${1:-$no_default}" 9171ef4d58SDevin Teske local default_country="${2:-$no_default}" 924913f849SAndriy Voskoboinyk 9397a4c9f0SDevin Teske # 944913f849SAndriy Voskoboinyk # Parse available countries/regdomains 9597a4c9f0SDevin Teske # 961cac9fc2SDevin Teske input=$( ifconfig $WLAN_IFACE list countries | sed -e 's/DEBUG//gi' ) 971cac9fc2SDevin Teske regdomains=$( echo $input | sed -e 's/.*domains://' | tr ' ' '\n' | 98138ab67aSDevin Teske sort | tr '\n' ' ' ) 99edcf3303SDevin Teske countries=$( echo $input | awk '{ 100edcf3303SDevin Teske sub(/Country codes:/, "") 101edcf3303SDevin Teske sub(/Regulatory.*/, "") 1024913f849SAndriy Voskoboinyk for (i = 1; i <= NF; i++) { 1034913f849SAndriy Voskoboinyk printf "%s", $i 1040e638f57SDevin Teske if ($i ~ /[[:lower:]]/) 1057bcf4508SDevin Teske printf $(i+1) ~ /[[:lower:]]/ ? "\\\\\\ " : "\n" 1064913f849SAndriy Voskoboinyk else 1074913f849SAndriy Voskoboinyk printf " " 1084913f849SAndriy Voskoboinyk } 109138ab67aSDevin Teske }' | sort -k 2 | tr '\n' ' ' ) 1104913f849SAndriy Voskoboinyk 11158ce2edcSDevin Teske f_dialog_title "Regdomain selection" 11258ce2edcSDevin Teske f_dialog_menu_size height width rows "$DIALOG_TITLE" \ 1136ea6e3faSDevin Teske "$DIALOG_BACKTITLE" "Select your regdomain." "" $regdomains 114ea2e60b0SDevin Teske regdomain=$( sh -c "$DIALOG \ 11558ce2edcSDevin Teske --title \"$DIALOG_TITLE\" \ 1167797a597SDevin Teske --backtitle \"$DIALOG_BACKTITLE\" \ 1174913f849SAndriy Voskoboinyk --cancel-label \"Skip\" \ 11871ef4d58SDevin Teske --default-item \"$default_regdomain\" \ 1194913f849SAndriy Voskoboinyk --no-items \ 1204913f849SAndriy Voskoboinyk --stdout \ 1214913f849SAndriy Voskoboinyk --menu \"Select your regdomain.\" \ 12276b07bd9SDevin Teske $height $width $rows $regdomains" 12376b07bd9SDevin Teske ) 1244913f849SAndriy Voskoboinyk 12558ce2edcSDevin Teske f_dialog_title "Country selection" 12658ce2edcSDevin Teske f_dialog_menu_size height width rows "$DIALOG_TITLE" \ 1276ea6e3faSDevin Teske "$DIALOG_BACKTITLE" "Select your country." "" $countries 128ea2e60b0SDevin Teske country=$( sh -c "$DIALOG \ 12958ce2edcSDevin Teske --title \"$DIALOG_TITLE\" \ 1307797a597SDevin Teske --backtitle \"$DIALOG_BACKTITLE\" \ 1314913f849SAndriy Voskoboinyk --cancel-label \"Skip\" \ 13271ef4d58SDevin Teske --default-item \"$default_country\" \ 1334913f849SAndriy Voskoboinyk --stdout \ 1344913f849SAndriy Voskoboinyk --menu \"Select your country.\" \ 13576b07bd9SDevin Teske $height $width $rows $countries" 13676b07bd9SDevin Teske ) 1374913f849SAndriy Voskoboinyk 1384913f849SAndriy Voskoboinyk country_set "$regdomain" "$country" 1394913f849SAndriy Voskoboinyk} 1404913f849SAndriy Voskoboinyk 141f18789d7SDevin Teske############################################################ MAIN 142f18789d7SDevin Teske 1434fa8c81cSDevin Teske: > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" 1448d5182d6SDevin Teskechmod 0600 "$BSDINSTALL_TMPETC/wpa_supplicant.conf" 145f18789d7SDevin Teske 146b5938e7dSDevin Teskecat >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" << EOF 147b5938e7dSDevin Teskectrl_interface=/var/run/wpa_supplicant 148b5938e7dSDevin Teskeeapol_version=2 149b5938e7dSDevin Teskeap_scan=1 150b5938e7dSDevin Teskefast_reauth=1 151b5938e7dSDevin Teske 152b5938e7dSDevin TeskeEOF 153f18789d7SDevin Teske 15497a4c9f0SDevin Teske# 155f18789d7SDevin Teske# Try to reach wpa_supplicant. If it isn't running and we can modify the 156f18789d7SDevin Teske# existing system, start it. Otherwise, fail. 15797a4c9f0SDevin Teske# 15838a99423SDevin Teske(wpa_cli ping >/dev/null 2>/dev/null || ([ "$BSDINSTALL_CONFIGCURRENT" ] && 1598d5182d6SDevin Teske wpa_supplicant -B -i $1 -c "$BSDINSTALL_TMPETC/wpa_supplicant.conf")) || 160ea2e60b0SDevin Teske ($DIALOG --backtitle "$DIALOG_BACKTITLE" --title "Error" --msgbox \ 161f18789d7SDevin Teske "Could not start wpa_supplicant!" 0 0; exit 1) || exit 1 162f18789d7SDevin Teske 163f18789d7SDevin Teske# See if we succeeded 164f18789d7SDevin Teskewpa_cli ping >/dev/null 2>/dev/null 16538a99423SDevin Teskeif [ $? -ne 0 -a ! "$BSDINSTALL_CONFIGCURRENT" ]; then 166ea2e60b0SDevin Teske $DIALOG \ 1672abc4c24SDevin Teske --title "Error" \ 1687797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 1692abc4c24SDevin Teske --msgbox "Wireless cannot be configured without making changes to the local system!" \ 1702abc4c24SDevin Teske 0 0 171f18789d7SDevin Teske exit 1 172f18789d7SDevin Teskefi 173f18789d7SDevin Teske 17497a4c9f0SDevin Teske# 1754913f849SAndriy Voskoboinyk# There is no way to check country/regdomain without (possible) 1764913f849SAndriy Voskoboinyk# interface state modification 17797a4c9f0SDevin Teske# 17838a99423SDevin Teskeif [ "$BSDINSTALL_CONFIGCURRENT" ]; then 1794913f849SAndriy Voskoboinyk # Get current country/regdomain for selected interface 1809ca8b7beSDevin Teske WLAN_IFACE=$( wpa_cli ifname | tail -1 ) 1819ca8b7beSDevin Teske INPUT=$( ifconfig $WLAN_IFACE list regdomain | head -1 ) 182138ab67aSDevin Teske DEF_REGDOMAIN=$( echo $INPUT | cut -w -f 2 ) 183138ab67aSDevin Teske DEF_COUNTRY=$( echo $INPUT | cut -w -f 4 ) 184c62801e2SDevin Teske [ "$DEF_REGDOMAIN" = 0 ] && DEF_REGDOMAIN="<not selected>" 1850b04945dSDevin Teske [ "$DEF_COUNTRY" = 0 ] && DEF_COUNTRY="<not selected>" 18658ce2edcSDevin Teske f_dialog_title "Regdomain/country" 187ea2e60b0SDevin Teske $DIALOG \ 18858ce2edcSDevin Teske --title "$DIALOG_TITLE" \ 1897797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 1902abc4c24SDevin Teske --yesno "Change regdomain/country (now $DEF_REGDOMAIN/$DEF_COUNTRY)?" \ 1912abc4c24SDevin Teske 0 0 1924913f849SAndriy Voskoboinyk if [ $? -eq 0 ]; then 1934913f849SAndriy Voskoboinyk while : 1944913f849SAndriy Voskoboinyk do 1954913f849SAndriy Voskoboinyk dialog_country_select "$DEF_REGDOMAIN" "$DEF_COUNTRY" 1964913f849SAndriy Voskoboinyk if [ $? -eq $SUCCESS ]; then 1974913f849SAndriy Voskoboinyk break 1984913f849SAndriy Voskoboinyk fi 1994913f849SAndriy Voskoboinyk done 2004913f849SAndriy Voskoboinyk fi 2014913f849SAndriy Voskoboinykfi 2024913f849SAndriy Voskoboinyk 20376b07bd9SDevin Teskewhile :; do 2043220bdd8SDevin Teske SCANSSID=0 205bc4a673fSDevin Teske output=$( wpa_cli scan 2>&1 ) 206bc4a673fSDevin Teske f_dprintf "%s" "$output" 20758ce2edcSDevin Teske f_dialog_title "Scanning" 208ea2e60b0SDevin Teske $DIALOG \ 20958ce2edcSDevin Teske --title "$DIALOG_TITLE" \ 2107797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 2114913f849SAndriy Voskoboinyk --ok-label "Skip" \ 2122118f387SNathan Whitehorn --pause "Waiting 5 seconds to scan for wireless networks..." \ 2132118f387SNathan Whitehorn 9 40 5 || exit 1 2142118f387SNathan Whitehorn 215138ab67aSDevin Teske SCAN_RESULTS=$( wpa_cli scan_results ) 2162abc4c24SDevin Teske NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' 2172abc4c24SDevin Teske /..:..:..:..:..:../ { 2182abc4c24SDevin Teske if (length($5) > 0) 2198bcf5646SDevin Teske printf("\"%s\"\t%s\n", $5, $4) 2202abc4c24SDevin Teske } 2212abc4c24SDevin Teske ' | sort | uniq ) 2222118f387SNathan Whitehorn 22338a99423SDevin Teske if [ ! "$NETWORKS" ]; then 22458ce2edcSDevin Teske f_dialog_title "Error" 225ea2e60b0SDevin Teske $DIALOG \ 22658ce2edcSDevin Teske --title "$DIALOG_TITLE" \ 2277797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 2282abc4c24SDevin Teske --yesno "No wireless networks were found. Rescan?" \ 2292abc4c24SDevin Teske 0 0 && continue 2302118f387SNathan Whitehorn exit 1 2312118f387SNathan Whitehorn fi 2322118f387SNathan Whitehorn 23358ce2edcSDevin Teske f_dialog_title "Network Selection" 234ea2e60b0SDevin Teske NETWORK=$( sh -c "$DIALOG \ 23558ce2edcSDevin Teske --title \"$DIALOG_TITLE\" \ 2367797a597SDevin Teske --backtitle \"$DIALOG_BACKTITLE\" \ 2372abc4c24SDevin Teske --extra-button \ 2382abc4c24SDevin Teske --extra-label \"Rescan\" \ 2392abc4c24SDevin Teske --menu \"Select a wireless network to connect to.\" \ 2402abc4c24SDevin Teske 0 0 0 \ 2412abc4c24SDevin Teske $( echo $NETWORKS | tr '\n' ' ' )" \ 242*877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 2432abc4c24SDevin Teske ) 2442118f387SNathan Whitehorn case $? in 2455357f8f7SDevin Teske $DIALOG_OK) 2464913f849SAndriy Voskoboinyk break 2472118f387SNathan Whitehorn ;; 2485357f8f7SDevin Teske $DIALOG_CANCEL) 2493220bdd8SDevin Teske # here we ask if the user wants to select the network manually 2503220bdd8SDevin Teske f_dialog_title "Network Selection" 2513220bdd8SDevin Teske f_dialog_yesno "Do you want to select the network manually?" || exit 1 2523220bdd8SDevin Teske f_dialog_input NETWORK "Enter SSID" || exit 1 253ea2e60b0SDevin Teske ENCRYPTION=$( $DIALOG \ 2542abc4c24SDevin Teske --title "$DIALOG_TITLE" \ 2557797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 2562abc4c24SDevin Teske --menu "Select encryption type" \ 2572abc4c24SDevin Teske 0 0 0 \ 2582abc4c24SDevin Teske "1 WPA/WPA2 PSK" "" \ 2592abc4c24SDevin Teske "2 WPA/WPA2 EAP" "" \ 2602abc4c24SDevin Teske "3 WEP" "" \ 2612abc4c24SDevin Teske "0 None" "" \ 262*877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 2632abc4c24SDevin Teske ) || exit 1 2643220bdd8SDevin Teske SCANSSID=1 2653220bdd8SDevin Teske f_dialog_title_restore 2663220bdd8SDevin Teske break 2672118f387SNathan Whitehorn ;; 2685357f8f7SDevin Teske $DIALOG_EXTRA) # Rescan 2692118f387SNathan Whitehorn ;; 2702118f387SNathan Whitehorn esac 2714913f849SAndriy Voskoboinykdone 2722118f387SNathan Whitehorn 2732abc4c24SDevin Teske[ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | 2748bcf5646SDevin Teske awk -F '\t' "/^\"$NETWORK\"\t/ { printf(\"%s\n\", \\\$2 ) }" ) 2752118f387SNathan Whitehorn 2762118f387SNathan Whitehornif echo $ENCRYPTION | grep -q 'PSK'; then 277ea2e60b0SDevin Teske PASS=$( $DIALOG \ 2782abc4c24SDevin Teske --title "WPA Setup" \ 2797797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 2807797a597SDevin Teske --insecure \ 2812abc4c24SDevin Teske --mixedform "" \ 2822abc4c24SDevin Teske 0 0 0 \ 2832118f387SNathan Whitehorn "SSID" 1 0 "$NETWORK" 1 12 0 0 2 \ 284a4de89deSChristian Brueffer "Password" 2 0 "" 2 12 15 63 1 \ 285*877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 286bef42d18SDevin Teske ) || exec "$0" "$@" 287b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 288b5938e7dSDevin Teske >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<-EOF 289b5938e7dSDevin Teske network={ 290b5938e7dSDevin Teske ssid="$NETWORK" 2913220bdd8SDevin Teske scan_ssid=$SCANSSID 292b5938e7dSDevin Teske psk="$PASS" 2932118f387SNathan Whitehorn priority=5 294b5938e7dSDevin Teske } 295b5938e7dSDevin Teske EOF 296093b9154SGavin Atkinsonelif echo $ENCRYPTION | grep -q EAP; then 297ea2e60b0SDevin Teske USERPASS=$( $DIALOG \ 2982abc4c24SDevin Teske --title "WPA-Enterprise Setup" \ 2997797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 3007797a597SDevin Teske --insecure \ 3012abc4c24SDevin Teske --mixedform "" 0 0 0 \ 302093b9154SGavin Atkinson "SSID" 1 0 "$NETWORK" 1 12 0 0 2 \ 303093b9154SGavin Atkinson "Username" 2 0 "" 2 12 25 63 0 \ 304093b9154SGavin Atkinson "Password" 3 0 "" 3 12 25 63 1 \ 305*877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 306bef42d18SDevin Teske ) || exec "$0" "$@" 307b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 308b5938e7dSDevin Teske >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<-EOF 309b5938e7dSDevin Teske network={ 310b5938e7dSDevin Teske ssid="$NETWORK" 3113220bdd8SDevin Teske scan_ssid=$SCANSSID 312b5938e7dSDevin Teske key_mgmt=WPA-EAP$( 313093b9154SGavin Atkinson echo "$USERPASS" | awk ' 3148bcf5646SDevin Teske NR == 1 { printf "\n\t\tidentity=\"%s\"", $1 } 3158bcf5646SDevin Teske NR == 2 { printf "\n\t\tpassword=\"%s\"", $1 } 3160b8f01feSDevin Teske ' ) 317b5938e7dSDevin Teske priority=5 318b5938e7dSDevin Teske } 319b5938e7dSDevin Teske EOF 3202118f387SNathan Whitehornelif echo $ENCRYPTION | grep -q WEP; then 321ea2e60b0SDevin Teske WEPKEY=$( $DIALOG \ 3222abc4c24SDevin Teske --title "WEP Setup" \ 3237797a597SDevin Teske --backtitle "$DIALOG_BACKTITLE" \ 3247797a597SDevin Teske --insecure \ 3252abc4c24SDevin Teske --mixedform "" 0 0 0 \ 3262118f387SNathan Whitehorn "SSID" 1 0 "$NETWORK" 1 12 0 0 2 \ 3272118f387SNathan Whitehorn "WEP Key 0" 2 0 "" 2 12 15 0 1 \ 328*877ea047SDevin Teske 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 329bef42d18SDevin Teske ) || exec "$0" "$@" 330b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 331b5938e7dSDevin Teske >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<-EOF 332b5938e7dSDevin Teske network={ 333b5938e7dSDevin Teske ssid="$NETWORK" 3343220bdd8SDevin Teske scan_ssid=$SCANSSID 3352118f387SNathan Whitehorn key_mgmt=NONE 336b5938e7dSDevin Teske wep_key0="$WEPKEY" 3372118f387SNathan Whitehorn wep_tx_keyidx=0 3382118f387SNathan Whitehorn priority=5 339b5938e7dSDevin Teske } 340b5938e7dSDevin Teske EOF 3412118f387SNathan Whitehornelse # Open 342b5938e7dSDevin Teske awk 'sub(/^\t/,"")||1' \ 343b5938e7dSDevin Teske >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" <<-EOF 344b5938e7dSDevin Teske network={ 345b5938e7dSDevin Teske ssid="$NETWORK" 3463220bdd8SDevin Teske scan_ssid=$SCANSSID 3472118f387SNathan Whitehorn key_mgmt=NONE 3482118f387SNathan Whitehorn priority=5 349b5938e7dSDevin Teske } 350b5938e7dSDevin Teske EOF 3512118f387SNathan Whitehornfi 3522118f387SNathan Whitehorn 3532118f387SNathan Whitehorn# Connect to any open networks policy 354b5938e7dSDevin Teskecat >> "$BSDINSTALL_TMPETC/wpa_supplicant.conf" << EOF 355b5938e7dSDevin Teskenetwork={ 356ebffa060SGavin Atkinson priority=0 3572118f387SNathan Whitehorn key_mgmt=NONE 358b5938e7dSDevin Teske} 359b5938e7dSDevin TeskeEOF 3602118f387SNathan Whitehorn 3612118f387SNathan Whitehorn# Bring up new network 362bc4a673fSDevin Teskeif [ "$BSDINSTALL_CONFIGCURRENT" ]; then 363bc4a673fSDevin Teske output=$( wpa_cli reconfigure 2>&1 ) 364bc4a673fSDevin Teske f_dprintf "%s" "$output" 365bc4a673fSDevin Teskefi 3662118f387SNathan Whitehorn 3670a835493SDevin Teskeexit $SUCCESS 368bc4a673fSDevin Teske 369bc4a673fSDevin Teske################################################################################ 370bc4a673fSDevin Teske# END 371bc4a673fSDevin Teske################################################################################ 372