slitaz-boot-scripts rev 398
network.sh: bugfix: start Live CD with predefined wpa.conf, not with empty file; remove "any" network, it prevents to connect to regular AP; shrink sleep timing (20s to 5s).
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Sat Mar 28 14:33:42 2015 +0200 (2015-03-28) |
parents | fb3932bbddf8 |
children | a8aa6b77a7ed |
files | etc/init.d/network.sh |
line diff
1.1 --- a/etc/init.d/network.sh Wed Mar 25 00:29:48 2015 +0200 1.2 +++ b/etc/init.d/network.sh Sat Mar 28 14:33:42 2015 +0200 1.3 @@ -11,6 +11,7 @@ 1.4 . "$CONF" 1.5 1.6 WPA_CONF='/etc/wpa/wpa.conf' 1.7 +[ ! -e "$WPA_CONF" ] && cp /etc/wpa/wpa_empty.conf $WPA_CONF 1.8 1.9 # Migrate existing settings to a new format file 1.10 1.11 @@ -59,7 +60,7 @@ 1.12 current_ssid="$(wpa_cli list_networks 2>/dev/null | fgrep '[CURRENT]' | cut -f2)" 1.13 if [ "$current_ssid" != "$WIFI_ESSID" ]; then 1.14 echo "Connecting to $WIFI_ESSID..." 1.15 - for i in $(seq 20); do 1.16 + for i in $(seq 5); do 1.17 index=$(wpa_cli list_networks 2>/dev/null | \ 1.18 grep -m1 -F $'\t'$WIFI_ESSID$'\t' | head -n1 | cut -f1) 1.19 [ -z "$index" ] && echo -n '.' && sleep 1 1.20 @@ -70,6 +71,15 @@ 1.21 } 1.22 1.23 1.24 +# Remove selected network settings from wpa.conf 1.25 + 1.26 +remove_network() { 1.27 + mv -f $WPA_CONF $WPA_CONF.old 1.28 + cat $WPA_CONF.old | tr '\n' '\a' | sed 's|[^#]\(network={\)|\n\1|g' | \ 1.29 + fgrep -v "ssid=\"$1\"" | tr '\a' '\n' > $WPA_CONF 1.30 +} 1.31 + 1.32 + 1.33 # For Wi-Fi. Users just have to enable it through WIFI="yes" and usually 1.34 # ESSID="any" will work and the interface is autodetected. 1.35 1.36 @@ -99,6 +109,9 @@ 1.37 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" 1.38 [ -n "$WIFI_AP" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS ap $WIFI_AP" 1.39 1.40 + # Use "any" network only when it is needed 1.41 + [ "$WIFI_ESSID" != 'any' ] && remove_network 'any' 1.42 + 1.43 # Clean all / add / change stored networks settings 1.44 if [ "$WIFI_BLANK_NETWORKS" == 'yes' ]; then 1.45 echo "Creating new $WPA_CONF" 1.46 @@ -107,9 +120,7 @@ 1.47 if fgrep -q ssid=\"$WIFI_ESSID\" $WPA_CONF; then 1.48 echo "Change network settings in $WPA_CONF" 1.49 # Remove given existing network (it's to be appended later) 1.50 - mv -f $WPA_CONF $WPA_CONF.old 1.51 - cat $WPA_CONF.old | tr '\n' '\a' | sed 's|[^#]\(network={\)|\n\1|g' | \ 1.52 - fgrep -v "ssid=\"$WIFI_ESSID\"" | tr '\a' '\n' > $WPA_CONF 1.53 + remove_network "$WIFI_ESSID" 1.54 else 1.55 echo "Append existing $WPA_CONF" 1.56 fi