summaryrefslogtreecommitdiffstats
path: root/src-wireless/netcfg-auto-wireless
diff options
context:
space:
mode:
Diffstat (limited to 'src-wireless/netcfg-auto-wireless')
-rw-r--r--src-wireless/netcfg-auto-wireless99
1 files changed, 50 insertions, 49 deletions
diff --git a/src-wireless/netcfg-auto-wireless b/src-wireless/netcfg-auto-wireless
index e3c9727..892d5a8 100644
--- a/src-wireless/netcfg-auto-wireless
+++ b/src-wireless/netcfg-auto-wireless
@@ -17,67 +17,67 @@ wifi_auto()
set_rf_state "$interface" up
fi
- set_interface up "$interface" # uses iproute methods---is it there any value to providing option to use ifconfig?
+ set_interface up "$interface" # uses iproute methods---is it there any value to providing option to use ifconfig?
networks=$(list_networks "$interface")
if [[ -z "$networks" ]]; then
- set_interface forcedown "$interface"
+ set_interface forcedown "$interface"
exit_fail "- No networks available."
fi
# Loop through all the found essid's, then find a matching profile.
- local found_profile found_essid
+ local found_profile found_essid
- # JP: add ability to use AP instead of ESSID
- # JP: also, make ESSIDs in wireless-dbus CONNECTIONS a regexp instead of a literal
+ # JP: add ability to use AP instead of ESSID
+ # JP: also, make ESSIDs in wireless-dbus CONNECTIONS a regexp instead of a literal
while read ap essid; do
- while read network; do
- (
- unset CONNECTION INTERFACE AP ESSID
- load_profile "$network"
- case "$CONNECTION" in
- wireless-old|wireless|wireless-dbus)
- if [[ "$interface" = "$INTERFACE" ]]; then
- if [[ "$ap" == "$AP" ]]; then
- exit 2
- elif [[ -z "$found_profile" ]]; then
- if [[ "$CONNECTION" == wireless-dbus ]]; then
- if expr match "$essid" "^$ESSID\$" 1>/dev/null; then
- exit 1
- fi
- elif [[ "$essid" == "$ESSID" ]]; then
- exit 1
- fi
- fi
- fi
- ;;
- esac
- exit 0
- )
- case $? in
- 2) found_profile="$network"
- found_essid="$essid"
- break 2;;
- 1) found_profile="$network"
- found_essid="$essid"
- ;;
- esac
- done < <(list_profiles) # avoid subshell we'd get by piping list_profiles to while read
- done < "$networks" # avoid subshell; list_networks returns name of a tmp file
- rm -f "$networks" # shouldn't we delete the tmp file?
+ while read network; do
+ (
+ unset CONNECTION INTERFACE AP ESSID
+ load_profile "$network"
+ case "$CONNECTION" in
+ wireless-old|wireless|wireless-dbus)
+ if [[ "$interface" = "$INTERFACE" ]]; then
+ if [[ "$ap" == "$AP" ]]; then
+ exit 2
+ elif [[ -z "$found_profile" ]]; then
+ if [[ "$CONNECTION" == wireless-dbus ]]; then
+ if expr match "$essid" "^$ESSID\$" 1>/dev/null; then
+ exit 1
+ fi
+ elif [[ "$essid" == "$ESSID" ]]; then
+ exit 1
+ fi
+ fi
+ fi
+ ;;
+ esac
+ exit 0
+ )
+ case $? in
+ 2) found_profile="$network"
+ found_essid="$essid"
+ break 2;;
+ 1) found_profile="$network"
+ found_essid="$essid"
+ ;;
+ esac
+ done < <(list_profiles) # avoid subshell we'd get by piping list_profiles to while read
+ done < "$networks" # avoid subshell; list_networks returns name of a tmp file
+ rm -f "$networks" # shouldn't we delete the tmp file?
if [[ -n "$found_profile" ]]; then
- report_success
- if profile_up "$found_profile" "$found_essid"; then # JP: now we pass literal essid to profile_up as $2
- exit 0
- else
- set_interface forcedown "$interface"
- exit_fail "Couldn't connect profile $found_profile."
- fi
- else
- set_interface forcedown "$interface"
- exit_fail "No profiles matched the local networks."
+ report_success
+ if profile_up "$found_profile" "$found_essid"; then # JP: now we pass literal essid to profile_up as $2
+ exit 0
+ else
+ set_interface forcedown "$interface"
+ exit_fail "Couldn't connect profile $found_profile."
+ fi
+ else
+ set_interface forcedown "$interface"
+ exit_fail "No profiles matched the local networks."
fi
}
@@ -90,3 +90,4 @@ if [[ -z "$1" ]]; then
fi
wifi_auto "$1"
+# vim: ft=sh ts=4 et sw=4: