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