diff options
author | Jouke Witteveen <j.witteveen@gmail.com> | 2012-07-03 03:37:31 +0200 |
---|---|---|
committer | Jouke Witteveen <j.witteveen@gmail.com> | 2012-07-03 03:37:31 +0200 |
commit | 58ea28491738bdc7f351083ee838955f475e4405 (patch) | |
tree | 5e29f55ede967a3cbfadc9834aa188209668094e | |
parent | 2a97de914054140b93e5eb163c2da73ec5001ee3 (diff) | |
download | netctl-58ea28491738bdc7f351083ee838955f475e4405.tar.gz netctl-58ea28491738bdc7f351083ee838955f475e4405.tar.xz |
Better file handling in wifi-menu
- Prevent slashes from entering potential profile filenames
- Remove scan results file in EXIT trap
-rwxr-xr-x | scripts/wifi-menu | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/scripts/wifi-menu b/scripts/wifi-menu index ba8eb47..669a49a 100755 --- a/scripts/wifi-menu +++ b/scripts/wifi-menu @@ -103,7 +103,7 @@ ssid_to_profile() create_profile() { local box flags key msg security - PROFILE="$INTERFACE-$1" + PROFILE="$INTERFACE-${1//\//_}" [[ -e "$PROFILE_DIR/$PROFILE" ]] && PROFILE+=".wifi-menu" flags=$(grep -m 1 $'\t'"$1\$" "$NETWORKS" | cut -f 2) if [[ "$flags" =~ WPA|WEP ]]; then @@ -210,18 +210,16 @@ if ! interface_is_up "$INTERFACE"; then SPAWNED_INTERFACE=1 fi -init_profiles "$INTERFACE" report_try "Scanning for networks" CONNECTION=$(wpa_cli -p "$WPA_CTRL_PATH" -i "$INTERFACE" status 2> /dev/null \ | grep -m 1 "^ssid=") CONNECTION=${CONNECTION#ssid=} NETWORKS=$(wpa_supplicant_scan_info "$INTERFACE" 3,4,5) -[[ $? -eq 0 ]] && init_entries "$NETWORKS" -if [[ ${#ENTRIES[@]} -eq 0 ]]; then - report_fail - RETURN=3 -else +if [[ $? -eq 0 ]]; then + trap 'rm -f "$NETWORKS"' EXIT report_success + init_profiles "$INTERFACE" + init_entries "$NETWORKS" MSG="Select the network you wish to use Flags description: * - handmade profile present @@ -235,7 +233,11 @@ Flags description: connect_to_ssid "$CHOICE" RETURN=$? fi +else + report_fail + RETURN=3 fi + case $RETURN in 0|2) # Connected | Connecting failed ;; @@ -258,6 +260,5 @@ case $RETURN in RETURN=7 ;; esac -[[ -f "$NETWORKS" ]] && rm -f "$NETWORKS" (( RETURN && SPAWNED_INTERFACE )) && bring_interface down "$INTERFACE" exit $RETURN |