tazpanel annotate network.cgi @ rev 107

network.cgi: Add static IP config
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 15 07:45:43 2011 +0200 (2011-04-15)
parents 21a86f36336d
children cab93136cc87
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@107 92 if [ "$(GET ip)" ]; then
pankso@107 93 LOADING_MSG=$(gettext "Setting up static IP...")
pankso@107 94 loading_msg
pankso@107 95 sed -i \
pankso@107 96 -e s"/^INTERFACE=.*/INTERFACE=\"$(GET iface)\""/ \
pankso@107 97 -e s'/^DHCP=.*/DHCP="no"/' \
pankso@107 98 -e s'/^WIFI=.*/WIFI="no"/' \
pankso@107 99 -e s'/^STATIC=.*/STATIC="yes"/' \
pankso@107 100 -e s"/^NETMASK=.*/NETMASK=\"$(GET netmask)\"/" \
pankso@107 101 -e s"/^GATEWAY=.*/GATEWAY=\"$(GET gateway)\"/" \
pankso@107 102 -e s"/^DNS_SERVER=.*/DNS_SERVER=\"$(GET dns)\"/" \
pankso@107 103 -e s"/^IP=.*/IP=\"$(GET ip)\"/" /etc/network.conf
pankso@107 104 /etc/init.d/network stop | log
pankso@107 105 sleep 2
pankso@107 106 /etc/init.d/network start | log
pankso@107 107 fi
pankso@107 108 . /etc/network.conf
pankso@38 109 cat << EOT
pankso@41 110 <h2>`gettext "Ethernet connection`</h2>
pankso@107 111
pankso@107 112 <h3>$(gettext "Setup a static IP")</h3>
pankso@107 113 <form method="get" action="$SCRIPT_NAME">
pankso@107 114 <input type="hidden" name="eth" />
pankso@107 115 $(table_start)
pankso@107 116 <thead>
pankso@107 117 <tr>
pankso@107 118 <td>$(gettext "Name")</td>
pankso@107 119 <td>$(gettext "Value")</td>
pankso@107 120 </tr>
pankso@107 121 </thead>
pankso@107 122 <tr>
pankso@107 123 <td>$(gettext "Interface")</td>
pankso@107 124 <td><input type="text" name="iface" size="20" value="$INTERFACE" /></td>
pankso@107 125 </tr>
pankso@107 126 <tr>
pankso@107 127 <td>$(gettext "IP address")</td>
pankso@107 128 <td><input type="text" name="ip" size="20" value="$IP" /></td>
pankso@107 129 </tr>
pankso@107 130 <tr>
pankso@107 131 <td>$(gettext "Netmask")</td>
pankso@107 132 <td><input type="text" name="netmask" size="20" value="$NETMASK" /></td>
pankso@107 133 </tr>
pankso@107 134 <tr>
pankso@107 135 <td>$(gettext "Gateway")</td>
pankso@107 136 <td><input type="text" name="gateway" size="20" value="$GATEWAY" /></td>
pankso@107 137 </tr>
pankso@107 138 <tr>
pankso@107 139 <td>$(gettext "DNS server")</td>
pankso@107 140 <td><input type="text" name="dns" size="20" value="$DNS_SERVER" /></td>
pankso@107 141 </tr>
pankso@107 142 $(table_end)
pankso@107 143 <input type="submit" value="`gettext "Activate"`">
pankso@107 144 </form>
pankso@107 145
pankso@107 146 <h3>$(gettext "Configuration file")</h3>
pankso@107 147 <p>
pankso@107 148 $(gettext "These values are the ethernet settings in the main
pankso@107 149 /etc/network.conf configuration file")
pankso@107 150 </p>
pankso@41 151 <pre>
pankso@107 152 $(grep ^[A-V] /etc/network.conf | syntax_highlighter conf)
pankso@41 153 </pre>
pankso@107 154 <a class="button" href="index.cgi?file=/etc/network.conf&action=edit">
pankso@107 155 <img src="$IMAGES/edit.png" />$(gettext "Manual Edit")</a>
pankso@41 156 EOT
pankso@41 157 ;;
pascal@81 158 *\ wifi\ *)
pankso@41 159 # Wireless connections settings
pankso@41 160 xhtml_header
pankso@106 161 LOADING_MSG=$(gettext "Scanning wireless interface...")
pankso@106 162 loading_msg
pankso@41 163 cat << EOT
pankso@41 164 <h2>`gettext "Wireless connection`</h2>
pankso@106 165 <div id="actions">
pankso@106 166 <a class="button" href="$SCRIPT_NAME?wifi=scan">
pankso@106 167 <img src="$IMAGES/recharge.png" />$(gettext "Scan")</a>
pankso@106 168 </div>
pankso@106 169 $(detect_wifi_networks)
pankso@106 170 EOT
pankso@106 171 cat << EOT
pankso@98 172 <h3>$(gettext "Configuration file")</h3>
pankso@98 173 <p>
pankso@98 174 $(gettext "These values are the wifi settings in the main
pankso@98 175 /etc/network.conf configuration file")
pankso@98 176 </p>
pankso@41 177 <pre>
pankso@107 178 $(grep ^WIFI /etc/network.conf | syntax_highlighter conf)
pankso@41 179 </pre>
pankso@98 180 <a class="button" href="index.cgi?file=/etc/network.conf&action=edit">
pankso@98 181 <img src="$IMAGES/edit.png" />$(gettext "Manual Edit")</a>
pankso@106 182
pankso@106 183 <h3>$(gettext "Output of") iwconfig</h3>
pankso@106 184 <pre>
pankso@106 185 $(iwconfig)
pankso@106 186 </pre>
pankso@41 187 EOT
pankso@41 188 ;;
pankso@41 189 *)
pankso@41 190 # Main Network page starting with a summary
pankso@41 191 xhtml_header
pankso@41 192 cat << EOT
pankso@41 193 <h2>`gettext "Networking`</h2>
pankso@41 194 <p>
paul@52 195 `gettext "Manage network connections and services`
pankso@41 196 </p>
pankso@41 197 <div id="actions">
pankso@74 198 <div class="float-left">
pankso@41 199 `gettext "Connection:"`
pankso@41 200 <a class="button" href="$SCRIPT_NAME?start">`gettext "Start"`</a>
pankso@41 201 <a class="button" href="$SCRIPT_NAME?stop">`gettext "Stop"`</a>
pankso@74 202 </div>
pankso@74 203 <div class="float-right">
pankso@74 204 `gettext "Configuration file:"`
pankso@74 205 <a class="button" href="index.cgi?file=/etc/network.conf">network.conf</a>
pankso@74 206 </div>
pankso@38 207 </div>
pankso@38 208
pankso@106 209 $(list_network_interfaces)
pankso@38 210
pankso@106 211 <h3>$(gettext "Output of ") ifconfig</h3>
pankso@38 212 <pre>
pankso@106 213 $(ifconfig)
pankso@38 214 </pre>
pascal@68 215
pascal@68 216 <h3>`gettext "Routing table"`</h3>
pascal@68 217 <pre>
pankso@106 218 $(route -n)
pascal@68 219 </pre>
pascal@68 220
pascal@68 221 <h3>`gettext "Domain name resolution"`</h3>
pascal@68 222 <pre>
pankso@106 223 $(cat /etc/resolv.conf)
pascal@68 224 </pre>
pascal@68 225
pascal@68 226 <h3>`gettext "ARP table"`</h3>
pascal@68 227 <pre>
pankso@106 228 $(arp)
pascal@68 229 </pre>
pankso@38 230 EOT
pankso@38 231 ;;
pankso@38 232 esac
pankso@38 233
pankso@38 234 xhtml_footer
pankso@38 235 exit 0