Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 143698 | Differences between
and this patch

Collapse All | Expand All

(-)iwconfig.sh (-6 / +24 lines)
Lines 347-353 Link Here
347
# so we can fail gracefully without even trying to connect
347
# so we can fail gracefully without even trying to connect
348
iwconfig_associate() {
348
iwconfig_associate() {
349
	local iface="$1" mode="${2:-managed}"
349
	local iface="$1" mode="${2:-managed}"
350
	local mac="$3" wep_required="$4" freq="$5" w="(WEP Disabled)"
350
	local mac="$3" wep_required="$4" freq="$5" chan="$6" w="(WEP Disabled)"
351
	local dessid="${ESSID//\\\\/\\\\}" key=
351
	local dessid="${ESSID//\\\\/\\\\}" key=
352
352
353
	iwconfig_set_mode "${iface}" "${mode}"
353
	iwconfig_set_mode "${iface}" "${mode}"
Lines 378-384 Link Here
378
		[[ ${key} != "off" ]] && w=$(iwconfig_get_wep_status "${iface}")
378
		[[ ${key} != "off" ]] && w=$(iwconfig_get_wep_status "${iface}")
379
	fi
379
	fi
380
380
381
	[[ -n ${freq} ]] && iwconfig "${iface}" freq "${freq}"
381
	# Only use channel or frequency
382
	if [[ -n ${chan} ]] ; then
383
		iwconfig "${iface}" channel "${chan}"
384
	elif [[ -n ${freq} ]] ; then
385
		iwconfig "${iface}" freq "${freq}"
386
	fi
382
	[[ -n ${mac} ]] && iwconfig "${iface}" ap "${mac}"
387
	[[ -n ${mac} ]] && iwconfig "${iface}" ap "${mac}"
383
388
384
	if ! iwconfig "${iface}" essid "${ESSID}" ; then
389
	if ! iwconfig "${iface}" essid "${ESSID}" ; then
Lines 453-459 Link Here
453
	[[ -z ${!x} || ${!x} -gt 0 ]] && sleep "${!x:-1}"
458
	[[ -z ${!x} || ${!x} -gt 0 ]] && sleep "${!x:-1}"
454
459
455
	local error=true i=-1 line=
460
	local error=true i=-1 line=
456
	local -a mac=() essid=() enc=() qual=() mode=()
461
	local -a mac=() essid=() enc=() qual=() mode=() freq=() chan=()
457
462
458
	while read line; do
463
	while read line; do
459
		error=false
464
		error=false
Lines 476-482 Link Here
476
				;;
481
				;;
477
			*Frequency:*)
482
			*Frequency:*)
478
				freq[i]="${line#*:}"
483
				freq[i]="${line#*:}"
484
				freq[i]="${freq[i]%% *}"
479
				;;
485
				;;
486
			*Channel:*)
487
				chan[i]="${line#*:}"
488
				chan[i]="${chan[i]%% *}"
489
				;;
480
			*Quality*)
490
			*Quality*)
481
				qual[i]="${line#*:}"
491
				qual[i]="${line#*:}"
482
				qual[i]="${qual[i]%/*}"
492
				qual[i]="${qual[i]%/*}"
Lines 533-538 Link Here
533
				unset mode[y]
543
				unset mode[y]
534
				unset enc[y]
544
				unset enc[y]
535
				unset freq[y]
545
				unset freq[y]
546
				unset chan[y]
536
			fi
547
			fi
537
		done
548
		done
538
	done
549
	done
Lines 542-547 Link Here
542
	mode=( "${mode[@]}" )
553
	mode=( "${mode[@]}" )
543
	enc=( "${enc[@]}" )
554
	enc=( "${enc[@]}" )
544
	freq=( "${freq[@]}" )
555
	freq=( "${freq[@]}" )
556
	chan=( "${chan[@]}" )
545
557
546
	for (( i=0; i<${#mac[@]}; i++ )); do
558
	for (( i=0; i<${#mac[@]}; i++ )); do
547
		# Don't like ad-hoc nodes by default
559
		# Don't like ad-hoc nodes by default
Lines 557-562 Link Here
557
		mode_APs[i]="${mode[${sortline[x]}]}"
569
		mode_APs[i]="${mode[${sortline[x]}]}"
558
		enc_APs[i]="${enc[${sortline[x]}]}"
570
		enc_APs[i]="${enc[${sortline[x]}]}"
559
		freq_APs[i]="${freq[${sortline[x]}]}"
571
		freq_APs[i]="${freq[${sortline[x]}]}"
572
		chan_APs[i]="${chan[${sortline[x]}]}"
560
	done
573
	done
561
574
562
	return 0
575
	return 0
Lines 629-634 Link Here
629
		unset mac_APs[i]
642
		unset mac_APs[i]
630
		unset enc_APs[i]
643
		unset enc_APs[i]
631
		unset freq_APs[i]
644
		unset freq_APs[i]
645
		unset chan_APs[i]
632
	done
646
	done
633
647
634
	# We need to squash our arrays so indexes work again
648
	# We need to squash our arrays so indexes work again
Lines 637-642 Link Here
637
	mac_APs=( "${mac_APs[@]}" )
651
	mac_APs=( "${mac_APs[@]}" )
638
	enc_APs=( "${enc_APs[@]}" )
652
	enc_APs=( "${enc_APs[@]}" )
639
	freq_APs=( "${freq_APs[@]}" )
653
	freq_APs=( "${freq_APs[@]}" )
654
	chan_APs=( "${chan_APs[@]}" )
640
}
655
}
641
656
642
# bool iwconfig_force_preferred(char *iface)
657
# bool iwconfig_force_preferred(char *iface)
Lines 679-685 Link Here
679
			if [[ ${essid} == "${essid_APs[i]}" ]]; then
694
			if [[ ${essid} == "${essid_APs[i]}" ]]; then
680
				ESSID="${essid}"
695
				ESSID="${essid}"
681
				iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
696
				iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
682
					"${enc_APs[i]}" "${freq_APs[i]}" && return 0
697
					"${enc_APs[i]}" "${freq_APs[i]}" "${chan_APs[i]}" && return 0
683
				break
698
				break
684
			fi
699
			fi
685
		done
700
		done
Lines 706-712 Link Here
706
		if ! ${has_preferred} ; then
721
		if ! ${has_preferred} ; then
707
			ESSID="${essid_APs[i]}"
722
			ESSID="${essid_APs[i]}"
708
			iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
723
			iwconfig_associate "${iface}" "${mode_APs[i]}" "${mac_APs[i]}" \
709
				"${enc_APs[i]}" "${freq_APs[i]}" && return 0
724
				"${enc_APs[i]}" "${freq_APs[i]}" "${chan_APs[i]}" && return 0
710
		fi
725
		fi
711
	done
726
	done
712
727
Lines 751-762 Link Here
751
				unset mac_APs[j]
766
				unset mac_APs[j]
752
				unset enc_APs[j]
767
				unset enc_APs[j]
753
				unset freq_APs[j]
768
				unset freq_APs[j]
769
				unset chan_APs[j]
754
				# We need to squash our arrays so that indexes work
770
				# We need to squash our arrays so that indexes work
755
				essid_APs=( "${essid_APs[@]}" )
771
				essid_APs=( "${essid_APs[@]}" )
756
				mode_APs=( "${mode_APs[@]}" )
772
				mode_APs=( "${mode_APs[@]}" )
757
				mac_APs=( "${mac_APs[@]}" )
773
				mac_APs=( "${mac_APs[@]}" )
758
				enc_APs=( "${enc_APs[@]}" )
774
				enc_APs=( "${enc_APs[@]}" )
759
				freq_APs=( "${freq_APs[@]}" )
775
				freq_APs=( "${freq_APs[@]}" )
776
				chan_APs=( "${chan_APs[@]}" )
760
				break
777
				break
761
			fi
778
			fi
762
		done
779
		done
Lines 780-786 Link Here
780
# variables for the ESSID
797
# variables for the ESSID
781
iwconfig_configure() {
798
iwconfig_configure() {
782
	local iface="$1" e= x= ifvar=$(bash_variable "$1")
799
	local iface="$1" e= x= ifvar=$(bash_variable "$1")
783
	local -a essid_APs=() mac_APs=() mode_APs=() enc_APs=() freq_APs=()
800
	local -a essid_APs=() mac_APs=() mode_APs=()
801
	local -a enc_APs=() freq_APs=() chan_APs=()
784
802
785
	ESSID="essid_${ifvar}"
803
	ESSID="essid_${ifvar}"
786
	ESSID="${!ESSID}"
804
	ESSID="${!ESSID}"

Return to bug 143698