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