tazpanel view network.cgi @ rev 106

network.cgi: Improve wifi settings
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 15 06:37:45 2011 +0200 (2011-04-15)
parents df959815c470
children 306b0bf62bb8
line source
1 #!/bin/sh
2 #
3 # Network configuration CGI interface
4 #
6 # Common functions from libtazpanel
7 . lib/libtazpanel
8 . /etc/network.conf
9 get_config
10 header
12 # Include gettext helper script.
13 . /usr/bin/gettext.sh
15 # Export package name for gettext.
16 TEXTDOMAIN='tazpanel'
17 export TEXTDOMAIN
19 TITLE="- Network"
21 # Catch ESSIDs and format output for GTK tree. We get the list of
22 # networks by Cell and without spaces.
23 detect_wifi_networks()
24 {
25 table_start
26 cat << EOT
27 <thead>
28 <tr>
29 <td>$(gettext "Name")</td>
30 <td>$(gettext "Quality")</td>
31 <td>$(gettext "Encryption")</td>
32 <td>$(gettext "Status")</td>
33 </tr>
34 </thead>
35 EOT
36 if [ -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
37 ifconfig $WIFI_INTERFACE up
38 for i in `iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}'`
39 do
40 SCAN=`iwlist $WIFI_INTERFACE scan last | \
41 awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \
42 sed s/"Cell "/Cell-/ | grep -A 5 "$i"`
43 ESSID=`echo $SCAN | cut -d '"' -f 2`
44 if echo "$SCAN" | grep -q Quality; then
45 QUALITY=`echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/'`
46 else
47 QUALITY="-"
48 fi
49 ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'`
50 # Check encryption type
51 if echo "$SCAN" | grep -q WPA; then
52 ENCRYPTION="${ENCRYPTION} (WPA)"
53 fi
54 # Connected or not connected...
55 if ifconfig | grep -A 1 $WIFI_INTERFACE | \
56 grep -q inet && iwconfig $WIFI_INTERFACE | \
57 grep ESSID | grep -q -w "$ESSID"; then
58 STATUS=$(gettext "Connected")
59 else
60 STATUS="-"
61 fi
62 echo '<tr>'
63 echo "<td><img src='$IMAGES/wireless.png' />$ESSID</td>"
64 echo "<td>$QUALITY</td><td>$ENCRYPTION</td><td>$STATUS</td>"
65 echo '</tr>'
66 done
67 fi
68 table_end
69 }
71 # Actions commands before page is displayed
72 case " $(GET) " in
73 *\ start\ *)
74 # Here we sleep a bit to let udhcp get the lease before reloading
75 # page with status
76 /etc/init.d/network.sh start | log
77 sleep 2 ;;
78 *\ stop\ *)
79 /etc/init.d/network.sh stop | log ;;
80 *)
81 continue ;;
82 esac
84 #
85 # Main Commands for pages
86 #
88 case " $(GET) " in
89 *\ eth\ *)
90 # Wired connections settings
91 xhtml_header
93 cat << EOT
94 <h2>`gettext "Ethernet connection`</h2>
95 <pre>
96 `grep ^[A-V] /etc/network.conf`
97 </pre>
98 EOT
99 ;;
100 *\ wifi\ *)
101 # Wireless connections settings
102 xhtml_header
103 LOADING_MSG=$(gettext "Scanning wireless interface...")
104 loading_msg
105 cat << EOT
106 <h2>`gettext "Wireless connection`</h2>
107 <div id="actions">
108 <a class="button" href="$SCRIPT_NAME?wifi=scan">
109 <img src="$IMAGES/recharge.png" />$(gettext "Scan")</a>
110 </div>
111 $(detect_wifi_networks)
112 EOT
113 cat << EOT
114 <h3>$(gettext "Configuration file")</h3>
115 <p>
116 $(gettext "These values are the wifi settings in the main
117 /etc/network.conf configuration file")
118 </p>
119 <pre>
120 $(grep ^WIFI_ /etc/network.conf | syntax_highlighter conf)
121 </pre>
122 <a class="button" href="index.cgi?file=/etc/network.conf&action=edit">
123 <img src="$IMAGES/edit.png" />$(gettext "Manual Edit")</a>
125 <h3>$(gettext "Output of") iwconfig</h3>
126 <pre>
127 $(iwconfig)
128 </pre>
129 EOT
130 ;;
131 *)
132 # Main Network page starting with a summary
133 xhtml_header
134 cat << EOT
135 <h2>`gettext "Networking`</h2>
136 <p>
137 `gettext "Manage network connections and services`
138 </p>
139 <div id="actions">
140 <div class="float-left">
141 `gettext "Connection:"`
142 <a class="button" href="$SCRIPT_NAME?start">`gettext "Start"`</a>
143 <a class="button" href="$SCRIPT_NAME?stop">`gettext "Stop"`</a>
144 </div>
145 <div class="float-right">
146 `gettext "Configuration file:"`
147 <a class="button" href="index.cgi?file=/etc/network.conf">network.conf</a>
148 </div>
149 </div>
151 $(list_network_interfaces)
153 <h3>$(gettext "Output of ") ifconfig</h3>
154 <pre>
155 $(ifconfig)
156 </pre>
158 <h3>`gettext "Routing table"`</h3>
159 <pre>
160 $(route -n)
161 </pre>
163 <h3>`gettext "Domain name resolution"`</h3>
164 <pre>
165 $(cat /etc/resolv.conf)
166 </pre>
168 <h3>`gettext "ARP table"`</h3>
169 <pre>
170 $(arp)
171 </pre>
172 EOT
173 ;;
174 esac
176 xhtml_footer
177 exit 0