View | Details | Raw Unified
Collapse All | Expand All

(-) iwconfig.sh.orig (-6 / +28 lines)
 Lines 347-353    Link Here 
# so we can fail gracefully without even trying to connect
# so we can fail gracefully without even trying to connect
iwconfig_associate() {
iwconfig_associate() {
	local iface="$1" mode="${2:-managed}"
	local iface="$1" mode="${2:-managed}"
	local mac="$3" wep_required="$4" freq="$5" w="(WEP Disabled)"
	local mac="$3" wep_required="$4" freq="$5" chan="$6" w="(WEP Disabled)"
	local dessid="${ESSID//\\\\/\\\\}" key=
	local dessid="${ESSID//\\\\/\\\\}" key=
	iwconfig_set_mode "${iface}" "${mode}"
	iwconfig_set_mode "${iface}" "${mode}"
 Lines 378-384    Link Here 
		[[ ${key} != "off" ]] && w=$(iwconfig_get_wep_status "${iface}")
		[[ ${key} != "off" ]] && w=$(iwconfig_get_wep_status "${iface}")
	fi
	fi
	[[ -n ${freq} ]] && iwconfig "${iface}" freq "${freq}"
	# Only use channel or frequency
	if [[ -n ${chan} ]] ; then
		iwconfig "${iface}" channel "${chan}"
	elif [[ -n ${freq} ]] ; then
		iwconfig "${iface}" freq "${freq}"
	fi
	[[ -n ${mac} ]] && iwconfig "${iface}" ap "${mac}"
	[[ -n ${mac} ]] && iwconfig "${iface}" ap "${mac}"
	if ! iwconfig "${iface}" essid "${ESSID}" ; then
	if ! iwconfig "${iface}" essid "${ESSID}" ; then
 Lines 453-459    Link Here 
	[[ -z ${!x} || ${!x} -gt 0 ]] && sleep "${!x:-1}"
	[[ -z ${!x} || ${!x} -gt 0 ]] && sleep "${!x:-1}"
	local error=true i=-1 line=
	local error=true i=-1 line=
	local -a mac=() essid=() enc=() qual=() mode=()
	local -a mac=() essid=() enc=() qual=() mode=() freq=() chan=()
	while read line; do
	while read line; do
		error=false
		error=false
 Lines 476-481    Link Here 
				;;
				;;
			*Frequency:*)
			*Frequency:*)
				freq[i]="${line#*:}"
				freq[i]="${line#*:}"
				freq[i]="${freq[i]%% *}"
				;;
			*Channel:*)
				chan[i]="${line#*:}"
				chan[i]="${chan[i]%% *}"
				;;
				;;
			*Quality*)
			*Quality*)
				qual[i]="${line#*:}"
				qual[i]="${line#*:}"
 Lines 486-491    Link Here 
		esac
		esac
	done < <(iwlist "${iface}" scan 2>/dev/null)
	done < <(iwlist "${iface}" scan 2>/dev/null)
	# HUP the interface as some drivers/cards need it
	interface_down ${iface}
	interface_up ${iface}
	if ${error}; then
	if ${error}; then
		ewarn "${iface} does not support scanning"
		ewarn "${iface} does not support scanning"
		x="adhoc_essid_${ifvar}"
		x="adhoc_essid_${ifvar}"
 Lines 533-538    Link Here 
				unset mode[y]
				unset mode[y]
				unset enc[y]
				unset enc[y]
				unset freq[y]
				unset freq[y]
				unset chan[y]
			fi
			fi
		done
		done
	done
	done
 Lines 542-547    Link Here 
	mode=( "${mode[@]}" )
	mode=( "${mode[@]}" )
	enc=( "${enc[@]}" )
	enc=( "${enc[@]}" )
	freq=( "${freq[@]}" )
	freq=( "${freq[@]}" )
	chan=( "${chan[@]}" )
	for (( i=0; i<${#mac[@]}; i++ )); do
	for (( i=0; i<${#mac[@]}; i++ )); do
		# Don't like ad-hoc nodes by default
		# Don't like ad-hoc nodes by default
 Lines 557-562    Link Here 
		mode_APs[i]="${mode[${sortline[x]}]}"
		mode_APs[i]="${mode[${sortline[x]}]}"
		enc_APs[i]="${enc[${sortline[x]}]}"
		enc_APs[i]="${enc[${sortline[x]}]}"
		freq_APs[i]="${freq[${sortline[x]}]}"
		freq_APs[i]="${freq[${sortline[x]}]}"
		chan_APs[i]="${chan[${sortline[x]}]}"
	done
	done
	return 0
	return 0
 Lines 629-634    Link Here 
		unset mac_APs[i]
		unset mac_APs[i]
		unset enc_APs[i]
		unset enc_APs[i]
		unset freq_APs[i]
		unset freq_APs[i]
		unset chan_APs[i]
	done
	done
	# We need to squash our arrays so indexes work again
	# We need to squash our arrays so indexes work again
 Lines 637-642    Link Here 
	mac_APs=( "${mac_APs[@]}" )
	mac_APs=( "${mac_APs[@]}" )
	enc_APs=( "${enc_APs[@]}" )
	enc_APs=( "${enc_APs[@]}" )
	freq_APs=( "${freq_APs[@]}" )
	freq_APs=( "${freq_APs[@]}" )
	chan_APs=( "${chan_APs[@]}" )
}
}
# bool iwconfig_force_preferred(char *iface)
# bool iwconfig_force_preferred(char *iface)
 Lines 679-685    Link Here 
			if [[ ${essid} == "${essid_APs[i]}" ]]; then
			if [[ ${essid} == "${essid_APs[i]}" ]]; then
				ESSID="${essid}"
				ESSID="${essid}"
				iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
				iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
					"${enc_APs[i]}" "${freq_APs[i]}" && return 0
					"${enc_APs[i]}" "${freq_APs[i]}" "${chan_APs[i]}" && return 0
				break
				break
			fi
			fi
		done
		done
 Lines 706-712    Link Here 
		if ! ${has_preferred} ; then
		if ! ${has_preferred} ; then
			ESSID="${essid_APs[i]}"
			ESSID="${essid_APs[i]}"
			iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
			iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
				"${enc_APs[i]}" "${freq_APs[i]}" && return 0
				"${enc_APs[i]}" "${freq_APs[i]}" "${chan_APs[i]}" && return 0
		fi
		fi
	done
	done
 Lines 751-762    Link Here 
				unset mac_APs[j]
				unset mac_APs[j]
				unset enc_APs[j]
				unset enc_APs[j]
				unset freq_APs[j]
				unset freq_APs[j]
				unset chan_APs[j]
				# We need to squash our arrays so that indexes work
				# We need to squash our arrays so that indexes work
				essid_APs=( "${essid_APs[@]}" )
				essid_APs=( "${essid_APs[@]}" )
				mode_APs=( "${mode_APs[@]}" )
				mode_APs=( "${mode_APs[@]}" )
				mac_APs=( "${mac_APs[@]}" )
				mac_APs=( "${mac_APs[@]}" )
				enc_APs=( "${enc_APs[@]}" )
				enc_APs=( "${enc_APs[@]}" )
				freq_APs=( "${freq_APs[@]}" )
				freq_APs=( "${freq_APs[@]}" )
				chan_APs=( "${chan_APs[@]}" )
				break
				break
			fi
			fi
		done
		done
 Lines 780-786    Link Here 
# variables for the ESSID
# variables for the ESSID
iwconfig_configure() {
iwconfig_configure() {
	local iface="$1" e= x= ifvar=$(bash_variable "$1")
	local iface="$1" e= x= ifvar=$(bash_variable "$1")
	local -a essid_APs=() mac_APs=() mode_APs=() enc_APs=() freq_APs=()
	local -a essid_APs=() mac_APs=() mode_APs=()
	local -a enc_APs=() freq_APs=() chan_APs=()
	ESSID="essid_${ifvar}"
	ESSID="essid_${ifvar}"
	ESSID="${!ESSID}"
	ESSID="${!ESSID}"