slitaz-tools rev 225

netbox: detect ESSID list
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jul 08 08:39:26 2008 +0000 (2008-07-08)
parents 8a61d6420e01
children 803ff10f67b2
files tinyutils/netbox
line diff
     1.1 --- a/tinyutils/netbox	Tue Jul 08 07:54:00 2008 +0000
     1.2 +++ b/tinyutils/netbox	Tue Jul 08 08:39:26 2008 +0000
     1.3 @@ -26,9 +26,9 @@
     1.4  	chmod +x /etc/ppp/ip-up
     1.5  }
     1.6  
     1.7 -# Update WIFI_INTERFACE in /etc/network.conf
     1.8 +# Detect WIFI_INTERFACE and update /etc/network.conf
     1.9  . /etc/network.conf
    1.10 -if ! iwconfig $WIFI_INTERFACE | grep -iq "essid"; then
    1.11 +if ! iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then
    1.12  	WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
    1.13  			 while read dev; do iwconfig $dev 2>&1 | \
    1.14  			 	grep -iq "essid" && { echo $dev ; break; }; \
    1.15 @@ -36,6 +36,15 @@
    1.16  	[ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
    1.17  fi
    1.18  
    1.19 +ESSIDS=""
    1.20 +# Detect ESSID list
    1.21 +if ! iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then
    1.22 +	for i in $(iwlist $WIFI_INTERFACE scanning | grep "ESSID" | \
    1.23 +		grep -v "<hidden>" | sed -n 's/ESSID:"//p' | sed -n 's/"//p'); do
    1.24 +		ESSIDS="$ESSIDS<item>$linessid</item>"
    1.25 +	done
    1.26 +fi
    1.27 +
    1.28  if [ "$1" = "call" ]; then
    1.29  	ppp="pppd local lock notty"
    1.30  	pppup=""
    1.31 @@ -206,14 +215,20 @@
    1.32          <text use-markup="true">
    1.33            <label>"<b>Interface   :</b>"</label>
    1.34          </text>
    1.35 -        <entry>
    1.36 -          <input>. /etc/network.conf; echo $INTERFACE</input>
    1.37 -          <variable>INTERFACE</variable>
    1.38 -        </entry>
    1.39 +	<combobox>
    1.40 +          <variable>INTERFACE</variable>'
    1.41 +. /etc/network.conf
    1.42 +NET_BOX="$NET_BOX<item>$INTERFACE</item>$(
    1.43 +grep : /proc/net/dev | cut -d: -f1 | while read dev; do
    1.44 +	[ "$(echo $dev)" = "$INTERFACE" ] && continue
    1.45 +	echo "<item>$dev</item>"
    1.46 +done)"
    1.47 +tmp='   </combobox>
    1.48        </hbox>
    1.49      </frame>
    1.50  
    1.51      <notebook labels="DHCP|PPPoE|PPP|Static IP'
    1.52 +NET_BOX="$NET_BOX$tmp"
    1.53  [ -x /usr/sbin/iwconfig ] && NET_BOX="$NET_BOX|Wifi"
    1.54  NET_BOX="$NET_BOX|System wide|VPN|Servers"
    1.55  [ -x /sbin/iptables ] && NET_BOX="$NET_BOX|Firewall"
    1.56 @@ -448,15 +463,13 @@
    1.57            <input>. /etc/network.conf; echo "$WIFI_INTERFACE"</input>
    1.58            <variable>WIFI_INTERFACE</variable>
    1.59          </entry>
    1.60 -      </hbox>
    1.61 -      <hbox>
    1.62          <text use-markup="true">
    1.63            <label>"<b>ESSID       :</b>"</label>
    1.64          </text>
    1.65 -        <entry>
    1.66 -          <input>. /etc/network.conf; echo "$WIFI_ESSID"</input>
    1.67 -          <variable>WIFI_ESSID</variable>
    1.68 -        </entry>
    1.69 +	<combobox>'
    1.70 +. /etc/network.conf
    1.71 +tmp2="$tmp2<item>$WIFI_ESSID</item>$ESSIDS"
    1.72 +tmp3='</combobox>
    1.73        </hbox>
    1.74        </vbox>
    1.75        <vbox>
    1.76 @@ -473,8 +486,7 @@
    1.77          </text>
    1.78          <combobox>
    1.79            <variable>WIFI_MODE</variable>'
    1.80 -. /etc/network.conf
    1.81 -tmp2="$tmp2<item>$WIFI_MODE</item>"
    1.82 +tmp2="$tmp2$tmp3<item>$WIFI_MODE</item>"
    1.83  for i in managed ad-hoc master repeater secondary monitor; do
    1.84    [ "$i" = "$WIFI_MODE" ] || tmp2="$tmp2<item>$i</item>"
    1.85  done