slitaz-tools annotate tinyutils/netbox @ rev 542

Added tag 4.0.2 for changeset f701389ed812
author Christopher Rogers <slaxemulator@gmail.com>
date Sun Jan 23 00:57:30 2011 +0000 (2011-01-23)
parents 612580c57250
children c2eeac9343bf
rev   line source
pankso@33 1 #!/bin/sh
pankso@194 2 #
paul@317 3 # Gtkdialog box to manage network connections and servers.
pankso@292 4 # Please use tab to indent.
pankso@33 5 #
pankso@292 6 # (c) - SliTaz GNU/Linux 2009.
pankso@292 7 #
jozee@461 8 VERSION=20100315
jozee@461 9
jozee@461 10 . /usr/lib/slitaz/gui_functions
pankso@33 11
pankso@33 12 # Check if user is root.
pankso@33 13 check_root()
pankso@33 14 {
pankso@33 15 if test $(id -u) != 0 ; then
pankso@33 16 echo -e "
pankso@194 17 You must be root to run `basename $0`. Please type 'su' and
pankso@33 18 root password to become super-user.\n"
pankso@33 19 exit 0
pankso@33 20 fi
pankso@33 21 }
pankso@33 22
jozee@461 23
pascal@371 24 #
pankso@297 25 # Functions called by the connection tab to list interfaces.
pascal@371 26 #
pascal@371 27 ############################################################
pascal@371 28
pankso@297 29 interface_status()
pankso@297 30 {
pankso@297 31 if ifconfig | grep -A 1 $i | grep -q inet; then
pankso@297 32 ip=`ifconfig | grep -A 1 $i | grep inet | awk '{ print $2 }' | cut -d ":" -f 2`
pankso@297 33 echo "connected ($ip)"
pankso@297 34 else
pankso@297 35 echo "-"
pankso@297 36 fi
pankso@297 37 }
pankso@297 38 # First column is for icon name.
pankso@297 39 detect_interfaces()
pankso@297 40 {
pankso@297 41 for i in `ls /sys/class/net`
pankso@297 42 do
pankso@297 43 case $i in
pankso@297 44 eth*)
pankso@297 45 echo "network-wired | $i | Ethernet | `interface_status`" ;;
pankso@297 46 wlan*|ath*|ra*)
pankso@297 47 echo "network-wireless | $i | Wireless | `interface_status`" ;;
pankso@297 48 lo)
pankso@297 49 echo "gtk-network | $i | Loopback | `interface_status`" ;;
pankso@297 50 *)
pankso@297 51 continue ;;
pankso@297 52 esac
pankso@297 53
pankso@297 54 done
pankso@297 55 }
pankso@297 56
pankso@297 57 # When users double click on a connection.
pankso@297 58 interfaces_List_actions()
pankso@297 59 {
pankso@297 60 echo "$INTERFACE_LIST"
pankso@297 61 }
pankso@297 62
paul@317 63 # Netbox can be called with args.
pankso@297 64 case "$1" in
pankso@297 65 detect_interfaces|interfaces_List_actions)
pankso@297 66 $1
pankso@297 67 exit 0 ;;
pankso@297 68 *)
pankso@297 69 continue ;;
pankso@297 70 esac
pankso@297 71
pascal@177 72 set_ipup()
pascal@177 73 {
pascal@177 74 [ -f /etc/ppp/ip-up ] && return
pascal@177 75 cat > /etc/ppp/ip-up <<EOT
pascal@177 76 #!/bin/sh
pascal@177 77 exec $0 call ipup \$@
pascal@177 78 EOT
pascal@177 79 chmod +x /etc/ppp/ip-up
pascal@177 80 }
pascal@177 81
pascal@259 82 while true; do
pascal@259 83
pascal@225 84 # Detect WIFI_INTERFACE and update /etc/network.conf
pascal@224 85 . /etc/network.conf
pascal@256 86 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
pascal@256 87 WIFI_INTERFACE=$(for i in /sys/class/net/*/wireless; do \
pascal@256 88 [ -d $i ] && echo $(basename $(dirname $i)) || echo wlan0; \
pascal@256 89 break; done)
pascal@224 90 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
pascal@224 91 fi
pascal@224 92
pascal@371 93 #
pascal@371 94 # Netbox internal calls
pascal@371 95 #
pascal@371 96 #########################################################
pascal@371 97
pascal@177 98 if [ "$1" = "call" ]; then
pascal@177 99 ppp="pppd local lock notty"
pascal@177 100 pppup=""
pascal@177 101 sub=$2
pascal@177 102 shift 2
pascal@177 103 case "$sub" in
pascal@177 104 sendsshkey)
pascal@177 105 check_root
pascal@372 106 ( dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key ;
pascal@372 107 cat /etc/ssh/ssh_host_rsa_key.pub ) 2> /dev/null | \
pascal@372 108 grep ^ssh | ssh $1 "mkdir .ssh 2> /dev/null ; \
pascal@372 109 while read key; do for i in authorized_keys authorized_keys2; do \
pascal@414 110 grep -qs '\$key' .ssh/\$i || echo '\$key' >> .ssh/\$i ; done ; done ; \
pascal@372 111 chmod 700 .ssh ; chmod 600 .ssh/authorized_keys*"
pascal@177 112 exit 0;;
pascal@271 113 # OpenSSH VPN:
pascal@271 114 # PermitTunnel=point-to-point (or yes, ethernet, no)
pascal@271 115 # Tunnel="4" => tun4
pascal@271 116 # Local Client:
pascal@271 117 # # ssh -f -w 0:1 $REMOTE true => local tun0 [, remote tun1]
pascal@271 118 # # ifconfig $TUN $IP1 $IP2 netmask 255.255.255.252
pascal@271 119 # # route add $REMOTE_NETWORK $IP2
pascal@271 120 # Remote Server:
pascal@271 121 # # ifconfig $TUN $IP2 $IP1 netmask 255.255.255.252
pascal@271 122 # # route add $LOCAL_NETWORK $IP1
pascal@177 123 vpnssh) check_root
pascal@177 124 set_ipup
pascal@177 125 ps ww | grep -q "$ppp $2:$3" && exit 1
pascal@177 126 pipe="/tmp/ssh$$"
pascal@177 127 mkfifo $pipe
pascal@177 128 [ -n "$4" ] && pppup="ipparam 'addroutes,$(echo $4 | sed 's/ /,/g')'"
pascal@177 129 cat $pipe | dbclient -i /etc/dropbear/dropbear_rsa_host_key \
pascal@177 130 $1 "$ppp" | $ppp $2:$3 $pppup > $pipe
pascal@177 131 rm -f $pipe
pascal@177 132 exit 0;;
pascal@177 133 killvpnssh)
pascal@177 134 check_root
pascal@177 135 kill $(ps x | grep dbclient | grep "$ppp" | awk '{ print $1 }')
pascal@177 136 exit 0;;
pascal@177 137 ipup)
pascal@177 138 # Arg Name Example
pascal@177 139 # $1 Interface name ppp0
pascal@177 140 # $2 The tty ttyS1
pascal@177 141 # $3 The link speed 38400
pascal@177 142 # $4 Local IP number 12.34.56.78
pascal@177 143 # $5 Peer IP number 12.34.56.99
pascal@177 144 # $6 Optional ``ipparam'' value foo
pascal@177 145 iface=$1
pascal@177 146 # skip tty if present
pascal@177 147 case "$2" in [0-9]*);; *) shift; esac
pascal@177 148 peer=$4
pascal@177 149 IFS=","; set -- $(eval echo $5); unset IFS
pascal@177 150 set -- $1
pascal@177 151 if [ "$1" = "addroutes" ]; then
pascal@177 152 while [ -n "$2" ]; do
pascal@177 153 eval $(ipcalc -n $2)
pascal@177 154 eval $(ipcalc -m $2)
pascal@177 155 route add -net $NETWORK netmask $NETMASK \
pascal@177 156 gw $peer $iface
pascal@177 157 shift
pascal@177 158 done
pascal@177 159 fi
pascal@177 160 exit 0;;
pascal@177 161 esac
pascal@177 162 echo "call $sub unsupported."
pascal@177 163 exit 1
pascal@177 164 fi
pascal@177 165
pascal@371 166
pascal@371 167
pascal@371 168 #
pascal@371 169 # Status wire interfaces
pascal@371 170 #
pascal@371 171 tab_status_iface()
pascal@371 172 {
pascal@375 173 local eth
pascal@375 174 eth="$( (cd /sys/class/net ; [ -d eth0 ] && ls -d eth* ) )"
pascal@375 175 which ethtool > /dev/null || eth=''
pascal@375 176 if [ -n "$eth" ]; then
pascal@375 177 cat <<EOT
pascal@375 178 <notebook labels="Ifconfig|$(echo $eth | sed 's/ /|/g')">
pascal@375 179 EOT
pascal@375 180 fi
pascal@371 181 cat <<EOT
pascal@371 182 <frame Ifconfig>
pascal@371 183 <text wrap="false" width-chars="58">
pascal@371 184 <input>ifconfig</input>
pankso@292 185 </text>
pascal@371 186 </frame>
pascal@371 187 EOT
pascal@375 188 if [ -n "$eth" ]; then
pascal@375 189 local i
pascal@375 190 for i in $eth ; do
pascal@375 191 cat <<EOT
pascal@375 192 <frame $i>
pascal@375 193 <text wrap="false" width-chars="58">
pascal@375 194 <input>ethtool $i</input>
pascal@375 195 </text>
pascal@375 196 </frame>
pascal@375 197 EOT
pascal@375 198 done
pascal@375 199 cat <<EOT
pascal@375 200 </notebook>
pascal@375 201 EOT
pascal@375 202 fi
pascal@371 203 }
pascal@371 204
pascal@371 205 #
pascal@371 206 # Status wifi interfaces
pascal@371 207 #
pascal@371 208 tab_status_wifi_iface()
pascal@371 209 {
pascal@371 210 cat <<EOT
pascal@371 211 <frame Iwconfig>
pascal@371 212 <text wrap="false" width-chars="58">
pascal@371 213 <input>iwconfig</input>
pascal@371 214 </text>
pascal@371 215 </frame>
pascal@371 216 EOT
pascal@371 217 }
pascal@371 218
pascal@371 219 #
pascal@371 220 # Status wifi network
pascal@371 221 #
pascal@371 222 tab_status_wifi_net()
pascal@371 223 {
pascal@371 224 cat <<EOT
pascal@371 225 <frame Wireless networks>
pascal@371 226 <text wrap="false" width-chars="58">
pascal@371 227 <input>iwlist scan</input>
pascal@371 228 </text>
pascal@371 229 </frame>
pascal@371 230 EOT
pascal@371 231 }
pascal@371 232
pascal@371 233 #
pascal@371 234 # Status routing
pascal@371 235 #
pascal@371 236 tab_status_route()
pascal@371 237 {
pascal@371 238 cat <<EOT
pascal@371 239 <frame Routing>
pascal@371 240 <frame Nameservers>
pascal@371 241 <text wrap="false" width-chars="58">
pascal@371 242 <input>cat /etc/resolv.conf</input>
pankso@292 243 </text>
pankso@292 244 </frame>
pascal@371 245 <frame Routing table>
pascal@371 246 <text wrap="false" width-chars="58">
pascal@371 247 <input>route</input>
pankso@292 248 </text>
pankso@292 249 </frame>
pascal@371 250 <frame Arp table>
pascal@371 251 <text wrap="false" width-chars="58">
pascal@371 252 <input>arp</input>
pascal@371 253 </text>
pascal@371 254 </frame>
pascal@371 255 </frame>
pascal@371 256 EOT
pascal@371 257 }
pankso@194 258
pascal@371 259 data_status()
pascal@371 260 {
pascal@371 261 cat <<EOT
pascal@371 262 ifconfig Network\ interfaces tab_status_iface
pascal@371 263 iwconfig Wireless\ interfaces tab_status_wifi_iface
pascal@371 264 iwlist Wireless\ networks tab_status_wifi_net
pascal@371 265 route Routing tab_status_route
pascal@371 266 EOT
pascal@371 267 }
pascal@371 268
pankso@33 269 #
pascal@371 270 # Status
pascal@371 271 #
pascal@371 272 tab_status()
pascal@371 273 {
pascal@371 274 use_tab data_status
pascal@371 275 }
pankso@194 276
pascal@371 277 #
pankso@297 278 # Interfaces list from detect_interfaces()
pascal@371 279 #
pascal@371 280 tab_connections()
pascal@371 281 {
pascal@371 282 cat <<EOT
pankso@297 283 <vbox>
pankso@297 284 <tree>
pankso@297 285 <width>520</width><height>120</height>
pankso@297 286 <variable>INTERFACE_LIST</variable>
pankso@297 287 <label>Interface|Type|Status</label>
pascal@371 288 <input icon_column="0">$0 detect_interfaces</input>
pankso@297 289 <action>refresh:INTERFACE_LIST</action>
pankso@297 290 </tree>
pascal@371 291 </vbox>
pascal@371 292 EOT
pascal@371 293 }
pankso@297 294
pascal@371 295 #
pankso@297 296 # DHCP
pascal@371 297 #
pascal@371 298 tab_udhcpc()
pascal@371 299 {
pascal@371 300 cat <<EOT
pankso@292 301 <frame Udhcpc (busybox)>
pankso@292 302 <text width-chars="58">
pascal@371 303 <label> "Ethernet (cable) default connection." </label>
pankso@292 304 </text>
pankso@292 305 <hbox>
pankso@292 306 <text use-markup="true">
pankso@292 307 <label>"<b>Interface:</b>"</label>
pankso@292 308 </text>
pankso@292 309 <entry>
pascal@371 310 <input>. /etc/network.conf; echo "\$INTERFACE"</input>
pankso@292 311 <variable>INTERFACE</variable>
pankso@292 312 </entry>
pankso@292 313 </hbox>
pankso@292 314 <hbox>
pankso@292 315 <text use-markup="true">
pankso@292 316 <label>"<b>Options: </b>"</label>
pankso@292 317 </text>
pankso@292 318 <entry>
pankso@292 319 <default>-b</default>
pankso@292 320 <variable>UDHCPC_OPTS</variable>
pankso@292 321 </entry>
pascal@372 322 $(helpbutton udhcpc 80x30)
pankso@292 323 </hbox>
pankso@292 324 <hbox>
pankso@292 325 <text use-markup="true">
pankso@292 326 <label>"<b>Script: </b>"</label>
pankso@292 327 </text>
pankso@292 328 <entry editable="false">
pankso@292 329 <default>/usr/share/udhcpc/default.script</default>
pankso@292 330 <variable>UDHCPC_SCRIPT</variable>
pankso@292 331 </entry>
pascal@377 332 $(editbutton \$UDHCPC_SCRIPT)
pankso@292 333 </hbox>
pankso@292 334 <hbox>
pankso@292 335 <button>
pankso@292 336 <label>Start</label>
pankso@292 337 <input file icon="forward"></input>
pascal@371 338 <action>sed -i s/`cat /etc/network.conf | grep ^INTERFACE=`/INTERFACE="\$INTERFACE"/ /etc/network.conf</action>
pascal@371 339 <action>sed -i s/DHCP="no"/DHCP="yes"/ /etc/network.conf</action>
pascal@371 340 <action>sed -i s/STATIC="yes"/STATIC="no"/ /etc/network.conf</action>
pascal@371 341 <action>udhcpc \$UDHCPC_OPTS -i \$INTERFACE -p /var/run/udhcpc.\$INTERFACE.pid</action>
pankso@297 342 <action>refresh:INTERFACE_LIST</action>
pankso@292 343 </button>
pankso@292 344 <button>
pankso@292 345 <label>Stop</label>
pankso@292 346 <input file icon="stop"></input>
pascal@371 347 <action>echo -n "Stopping interface : \$INTERFACE... "</action>
pascal@371 348 <action>ifconfig \$INTERFACE down</action>
pankso@292 349 <action>killall -q udhcpc; echo "done"</action>
pankso@297 350 <action>refresh:INTERFACE_LIST</action>
pankso@292 351 </button>
pankso@292 352 </hbox>
pascal@371 353 </frame>
pascal@371 354 EOT
pascal@371 355 }
pankso@194 356
pascal@371 357 #
pankso@292 358 # Static/fixed IP settings.
pascal@371 359 #
pascal@371 360 tab_fixed_ip()
pascal@371 361 {
pascal@371 362 cat <<EOT
pankso@292 363 <frame Ethernet fixed IP>
pankso@292 364 <hbox>
pankso@292 365 <text use-markup="true">
pankso@292 366 <label>"<b>Interface: </b>"</label>
pankso@292 367 </text>
pankso@292 368 <entry>
pascal@371 369 <input>. /etc/network.conf; echo "\$INTERFACE"</input>
pankso@292 370 <variable>INTERFACE</variable>
pankso@292 371 </entry>
pankso@292 372 </hbox>
pankso@292 373 <hbox>
pankso@292 374 <text use-markup="true">
pankso@292 375 <label>"<b>IP: </b>"</label>
pankso@292 376 </text>
pankso@292 377 <entry>
pascal@371 378 <input>. /etc/network.conf; echo "\$IP"</input>
pankso@292 379 <variable>IP</variable>
pankso@292 380 </entry>
pankso@292 381 </hbox>
pankso@292 382 <hbox>
pankso@292 383 <text use-markup="true">
pankso@292 384 <label>"<b>Netmask: </b>"</label>
pankso@292 385 </text>
pankso@292 386 <entry>
pascal@371 387 <input>. /etc/network.conf; echo "\$NETMASK"</input>
pankso@292 388 <variable>NETMASK</variable>
pankso@292 389 </entry>
pankso@292 390 </hbox>
pankso@292 391 <hbox>
pankso@292 392 <text use-markup="true">
pankso@292 393 <label>"<b>Gateway: </b>"</label>
pankso@292 394 </text>
pankso@292 395 <entry>
pascal@371 396 <input>. /etc/network.conf; echo "\$GATEWAY"</input>
pankso@292 397 <variable>GATEWAY</variable>
pankso@292 398 </entry>
pankso@292 399 </hbox>
pankso@292 400 <hbox>
pankso@292 401 <text use-markup="true">
pankso@292 402 <label>"<b>DNS server: </b>"</label>
pankso@292 403 </text>
pankso@292 404 <entry>
pascal@371 405 <input>. /etc/network.conf; echo "\$DNS_SERVER"</input>
pankso@292 406 <variable>DNS_SERVER</variable>
pankso@292 407 </entry>
pascal@371 408 </hbox>
pankso@292 409 <hbox>
pankso@292 410 <button>
pankso@292 411 <label>Start</label>
pankso@292 412 <input file icon="forward"></input>
pankso@292 413 <action>ifconfig lo down</action>
pascal@371 414 <action>ifconfig \$INTERFACE down</action>
pascal@371 415 <action>sed -i s/`cat /etc/network.conf | grep ^INTERFACE=`/INTERFACE="\$INTERFACE"/ /etc/network.conf</action>
pascal@371 416 <action>sed -i s/DHCP="yes"/DHCP="no"/ /etc/network.conf</action>
pascal@371 417 <action>sed -i s/WIFI="yes"/WIFI="no"/ /etc/network.conf</action>
pascal@371 418 <action>sed -i s/STATIC="no"/STATIC="yes"/ /etc/network.conf</action>
pascal@371 419 <action>sed -i s/`cat /etc/network.conf | grep ^IP=`/IP="\$IP"/ /etc/network.conf</action>
pascal@371 420 <action>sed -i s/`cat /etc/network.conf | grep ^NETMASK=`/NETMASK="\$NETMASK"/ /etc/network.conf</action>
pascal@371 421 <action>sed -i s/`cat /etc/network.conf | grep ^GATEWAY=`/GATEWAY="\$GATEWAY"/ /etc/network.conf</action>
pascal@371 422 <action>sed -i s/`cat /etc/network.conf | grep ^DNS_SERVER=`/DNS_SERVER="\$DNS_SERVER"/ /etc/network.conf</action>
pankso@292 423 <action>/etc/init.d/network.sh</action>
pankso@297 424 <action>refresh:INTERFACE_LIST</action>
pankso@292 425 </button>
pankso@292 426 <button>
pankso@292 427 <label>Stop</label>
pankso@292 428 <input file icon="stop"></input>
pascal@371 429 <action>ifconfig \$INTERFACE down</action>
pankso@297 430 <action>refresh:INTERFACE_LIST</action>
pankso@292 431 </button>
pankso@292 432 </hbox>
pascal@371 433 </frame>
pascal@371 434 EOT
pascal@371 435 }
pankso@292 436
pascal@371 437 #
pankso@292 438 # PPPoe settings.
pascal@371 439 #
pascal@371 440 tab_pppoe()
pascal@371 441 {
pascal@371 442 cat <<EOT
pankso@292 443 <frame PPPoE>
pankso@292 444 <hbox>
pankso@292 445 <text use-markup="true">
pankso@292 446 <label>"<b>Name: </b>"</label>
pankso@292 447 </text>
pankso@292 448 <entry>
pascal@371 449 <input>NAME=\$(grep -s ^name /etc/ppp/options); echo "\${NAME#* }"</input>
pankso@292 450 <variable>NAME</variable>
pankso@292 451 </entry>
pankso@292 452 </hbox>
pankso@292 453 <hbox>
pankso@292 454 <text use-markup="true">
pankso@292 455 <label>"<b>Username:</b>"</label>
pankso@292 456 </text>
pankso@292 457 <entry>
pankso@292 458 <variable>USER</variable>
pankso@292 459 </entry>
pankso@292 460 </hbox>
pankso@292 461 <hbox>
pankso@292 462 <text use-markup="true">
pankso@292 463 <label>"<b>Password:</b>"</label>
pankso@292 464 </text>
pankso@292 465 <entry>
pankso@292 466 <variable>PASS</variable>
pankso@292 467 </entry>
pankso@292 468 </hbox>
pankso@292 469 <hbox>
pascal@371 470 $(helpbutton pppd 80x30)
pascal@371 471 $(manbutton 8 pppd)
pascal@374 472 $(webbutton ppp)
pankso@292 473 <button>
pankso@292 474 <input file icon="accessories-text-editor"></input>
pankso@292 475 <label>Tune</label>
pascal@371 476 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
pankso@292 477 <action type="lauch">leafpad /etc/ppp/options</action>
pankso@292 478 </button>
pankso@292 479 <button>
pankso@292 480 <label>Start</label>
pankso@292 481 <input file icon="forward"></input>
pascal@371 482 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/pap-secrets
pascal@371 483 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/pap-secrets</action>
pascal@371 484 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/chap-secrets
pascal@371 485 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/chap-secrets</action>
pascal@371 486 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
pankso@292 487 <action>killall udhcpc</action>
pankso@292 488 <action>sed -i "s/DHCP=\"yes\"/DHCP=\"no\"/" /etc/network.conf</action>
pankso@292 489 <action>sed -i "s/PPPOE=\"no\"/PPPOE=\"yes\"/" /etc/network.conf</action>
pascal@371 490 <action>pppd \$INTERFACE &</action>
pankso@292 491 </button>
pankso@292 492 <button>
pankso@292 493 <label>Stop</label>
pankso@292 494 <input file icon="stop"></input>
pankso@292 495 <action>sed -i "s/PPPOE=\"yes\"/PPPOE=\"no\"/" /etc/network.conf</action>
pankso@292 496 <action>killall pppd</action>
pankso@292 497 </button>
pankso@292 498 </hbox>
pascal@371 499 </frame>
pascal@371 500 EOT
pascal@371 501 }
pankso@292 502
pascal@371 503 #
pankso@292 504 # PPP settings.
pascal@371 505 #
pascal@371 506 tab_ppp()
pascal@371 507 {
pascal@371 508 cat <<EOT
pankso@292 509 <frame PPP>
pankso@292 510 <hbox>
pankso@292 511 <text use-markup="true">
pankso@292 512 <label>"<b>Username: </b>"</label>
pankso@292 513 </text>
pankso@292 514 <entry>
pascal@371 515 <input>USER=\$(grep -s ^ACCOUNT= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${USER#*=}"</input>
pankso@292 516 <variable>USER</variable>
pankso@292 517 </entry>
pankso@292 518 </hbox>
pankso@292 519 <hbox>
pankso@292 520 <text use-markup="true">
pankso@292 521 <label>"<b>Password: </b>"</label>
pankso@292 522 </text>
pankso@292 523 <entry>
pascal@371 524 <input>PASS=\$(grep -s ^PASSWORD= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${PASS#*=}"</input>
pankso@292 525 <variable>PASS</variable>
pankso@292 526 </entry>
pankso@292 527 </hbox>
pankso@292 528 <hbox>
pankso@292 529 <text use-markup="true">
pankso@292 530 <label>"<b>Telephone:</b>"</label>
pankso@292 531 </text>
pankso@292 532 <entry>
pascal@371 533 <input>PHONE=\$(grep -s ^TELEPHONE= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${PHONE#*=}"</input>
pankso@292 534 <variable>PHONE</variable>
pankso@292 535 </entry>
pankso@292 536 </hbox>
pankso@292 537 <hbox>
pascal@371 538 $(helpbutton pppd 80x30)
pascal@371 539 $(manbutton 8 pppd)
pascal@374 540 $(webbutton ppp)
pankso@292 541 <button>
pankso@292 542 <input file icon="accessories-text-editor"></input>
pankso@292 543 <label>Tune</label>
pascal@371 544 <action>[ -n "\$NAME" ] && sed -i "s/^ACCOUNT=.*/ACCOUNT=\$NAME/" /etc/ppp/scripts/ppp-on</action>
pascal@371 545 <action>[ -n "\$PASS" ] && sed -i "s/^PASSWORD=.*/PASSWORD=\$PASS/" /etc/ppp/scripts/ppp-on</action>
pascal@371 546 <action>[ -n "\$PHONE" ] && sed -i "s/^TELEPHONE=.*/TELEPHONE=\$PHONE/" /etc/ppp/scripts/ppp-on</action>
pankso@292 547 <action type="lauch">leafpad /etc/ppp/scripts/ppp-on</action>
pankso@292 548 </button>
pankso@292 549 <button>
pankso@292 550 <label>Start</label>
pankso@292 551 <input file icon="forward"></input>
pascal@371 552 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/pap-secrets
pascal@371 553 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/pap-secrets</action>
pascal@371 554 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/chap-secrets
pascal@371 555 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/chap-secrets</action>
pascal@371 556 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
pankso@292 557 <action>/etc/ppp/scripts/ppp-off</action>
pankso@292 558 <action>/etc/ppp/scripts/ppp-on &</action>
pankso@292 559 </button>
pankso@292 560 <button>
pankso@292 561 <label>Stop</label>
pankso@292 562 <input file icon="stop"></input>
pankso@292 563 <action>/etc/ppp/scripts/ppp-off</action>
pankso@292 564 </button>
pankso@292 565 </hbox>
pascal@371 566 </frame>
pascal@371 567 EOT
pascal@371 568 }
pankso@292 569
pankso@292 570 #
pascal@371 571 # System Wide configuration.
pankso@292 572 #
pascal@371 573 tab_system()
pascal@371 574 {
pascal@371 575 cat <<EOT
pascal@371 576 <frame Configuration files>
pankso@33 577 <hbox>
pankso@33 578 <text use-markup="true">
pankso@34 579 <label>"<b>Hosts :</b>"</label>
pankso@33 580 </text>
pankso@33 581 <entry editable="false">
pankso@33 582 <default>/etc/hosts</default>
pankso@33 583 <variable>HOSTS</variable>
pankso@33 584 </entry>
pascal@377 585 $(editbutton \$HOSTS)
pankso@33 586 </hbox>
pankso@33 587 <hbox>
pankso@33 588 <text use-markup="true">
pankso@34 589 <label>"<b>Host name :</b>"</label>
pankso@33 590 </text>
pankso@33 591 <entry editable="false">
pankso@33 592 <default>/etc/hostname</default>
pankso@33 593 <variable>HOSTNAME</variable>
pankso@33 594 </entry>
pascal@377 595 $(editbutton \$HOSTNAME)
pankso@33 596 </hbox>
pankso@33 597 <hbox>
pankso@33 598 <text use-markup="true">
pankso@34 599 <label>"<b>Network :</b>"</label>
pankso@33 600 </text>
pankso@33 601 <entry editable="false">
pankso@33 602 <default>/etc/network.conf</default>
pankso@33 603 <variable>CONFIG_FILE</variable>
pankso@33 604 </entry>
pascal@377 605 $(editbutton \$CONFIG_FILE)
pankso@33 606 </hbox>
pankso@33 607 <hbox>
pankso@33 608 <button>
pankso@33 609 <label>Restart</label>
pankso@33 610 <input file icon="reload"></input>
pascal@371 611 <action>echo -n "Stopping interface : \$INTERFACE... "</action>
pascal@371 612 <action>ifconfig \$INTERFACE down</action>
pankso@33 613 <action>killall -q udhcpc; echo "done"</action>
pascal@261 614 <action>/etc/init.d/network.sh restart</action>
pankso@33 615 </button>
pankso@33 616 </hbox>
pascal@371 617 </frame>
pascal@371 618 EOT
pascal@371 619 }
pankso@194 620
pascal@371 621 #
pascal@371 622 # ssh/ppp
pascal@371 623 #
pascal@371 624 tab_sshppp()
pascal@371 625 {
pascal@371 626 cat <<EOT
pascal@177 627 <frame Virtual Private Network with PPP/SSH>
pascal@177 628 <hbox>
pascal@177 629 <text use-markup="true">
pascal@177 630 <label>"<b>Peer :</b>"</label>
pascal@177 631 </text>
pascal@177 632 <entry>
pascal@177 633 <variable>DROPBEAR_PEERVPN</variable>
pascal@177 634 <default>user@elsewhere</default>
pascal@177 635 </entry>
pascal@177 636 </hbox>
pascal@177 637 <hbox>
pascal@177 638 <text use-markup="true">
pascal@177 639 <label>"<b>Local IP :</b>"</label>
pascal@177 640 </text>
pascal@177 641 <entry>
pascal@177 642 <variable>DROPBEAR_LOCAL</variable>
pascal@177 643 <default>192.168.254.1</default>
pascal@177 644 </entry>
pascal@177 645 </hbox>
pascal@177 646 <hbox>
pascal@177 647 <text use-markup="true">
pascal@177 648 <label>"<b>Remote IP :</b>"</label>
pascal@177 649 </text>
pascal@177 650 <entry>
pascal@177 651 <variable>DROPBEAR_REMOTE</variable>
pascal@177 652 <default>192.168.254.2</default>
pascal@177 653 </entry>
pascal@177 654 </hbox>
pascal@177 655 <hbox>
pascal@177 656 <text use-markup="true">
pascal@177 657 <label>"<b>Route(s) :</b>"</label>
pascal@177 658 </text>
pascal@177 659 <entry>
pascal@177 660 <variable>DROPBEAR_ROUTE</variable>
pascal@177 661 <default>192.168.10.0/24 192.168.20.0/28</default>
pascal@177 662 </entry>
pascal@177 663 </hbox>
pascal@177 664 <hbox>
pascal@498 665 $(wikibutton http://doc.slitaz.org/en:guides:vpn)
pascal@247 666 <button>
pascal@177 667 <input file icon="forward"></input>
pascal@177 668 <label>Connect</label>
pascal@371 669 <action>$0 call vpnssh \$DROPBEAR_PEERVPN \$DROPBEAR_LOCAL \$DROPBEAR_REMOTE "\$DROPBEAR_ROUTE" &</action>
pascal@177 670 </button>
pascal@177 671 <button>
pascal@177 672 <input file icon="stop"></input>
pascal@177 673 <label>Disconnect</label>
pascal@371 674 <action>$0 call killvpnssh</action>
pascal@177 675 </button>
pascal@177 676 <button>
pascal@177 677 <input file icon="go-up"></input>
pascal@177 678 <label>Send key</label>
pascal@372 679 <action>$xterm -geometry 80x10 -title "Send key" -e "$0 call sendsshkey \$DROPBEAR_PEERVPN; echo -e \"----\nENTER to continue...\" && read close"</action>
pascal@177 680 </button>
pascal@177 681 </hbox>
pascal@177 682 </frame>
pascal@371 683 EOT
pascal@371 684 }
pascal@371 685
pascal@371 686 #
pascal@371 687 # PPTP client
pascal@371 688 #
pascal@371 689 #FIXME
pascal@371 690 #cat > /etc/ppp/peers/$TUNNEL <<EOT
pascal@371 691 #pty "pptp $SERVER --nolaunchpppd"
pascal@371 692 #lock
pascal@371 693 #noauth
pascal@371 694 #nobsdcomp
pascal@371 695 #nodeflate
pascal@371 696 #name $DOMAIN\\$USERNAME
pascal@371 697 #remotename $TUNNEL
pascal@371 698 #ipparam $TUNNEL
pascal@371 699 #$(encryption && echo "require-mppe-128")
pascal@371 700 #EOT
pascal@371 701 #pppd call $TUNNEL updetach
pascal@371 702
pascal@371 703 tab_pptp()
pascal@371 704 {
pascal@371 705 [ -f /etc/ppp/options.pptp ] || cat >> /etc/ppp/options.pptp <<EOT
pascal@371 706 lock noauth nobsdcomp nodeflate remotename PPTP
pascal@371 707 EOT
pascal@371 708 [ -f /etc/ppp/pptp-servers ] || cat >> /etc/ppp/pptp-servers <<EOT
pascal@371 709 # PPTP servers list
pascal@371 710 EOT
pascal@371 711 cat <<EOT
pascal@371 712 <frame Virtual Private Network with PPTP>
pascal@371 713 <hbox>
pascal@371 714 <text use-markup="true">
pascal@371 715 <label>"<b>Server:</b>"</label>
pascal@371 716 </text>
pascal@371 717 <combobox>
pascal@371 718 <variable>PPTP_SERVER</variable>
pascal@371 719 EOT
pascal@371 720 grep -v ^\# /etc/ppp/pptp-servers | \
pascal@371 721 awk '{ printf " <item>%s</item>\n",$1 }'
pascal@371 722 cat <<EOT
pascal@371 723 <item>SERVER</item>
pascal@371 724 </combobox>
pascal@377 725 $(editbutton /etc/ppp/pptp-servers)
pascal@371 726 </hbox>
pascal@371 727 <hbox>
pascal@371 728 <text use-markup="true">
pascal@371 729 <label>"<b> User:</b>"</label>
pascal@371 730 </text>
pascal@371 731 <combobox>
pascal@371 732 <variable>PPTP_USER</variable>
pascal@371 733 EOT
pascal@371 734 grep '\\' /etc/ppp/chap-secrets | grep -v ^\# | \
pascal@371 735 awk '{ printf " <item>%s</item>\n",$1 }'
pascal@371 736 cat <<EOT
pascal@371 737 <item>DOMAIN\USERNAME</item>
pascal@371 738 </combobox>
pascal@377 739 $(editbutton /etc/ppp/chap-secrets)
pascal@371 740 </hbox>
pascal@371 741 <hbox>
pascal@371 742 <text use-markup="true">
pascal@371 743 <label>"<b>Password:</b>"</label>
pascal@371 744 </text>
pascal@371 745 <entry>
pascal@371 746 <variable>PPTP_PASS</variable>
pascal@371 747 </entry>
pascal@371 748 </hbox>
pascal@371 749 <hbox>
pascal@371 750 <checkbox>
pascal@371 751 <label>Encryption</label>
pascal@371 752 <variable>PPTP_ENC</variable>
pascal@371 753 <default>true</default>
pascal@371 754 </checkbox>
pascal@371 755 $(helpbutton pptp 80x35)
pascal@371 756 <button>
pascal@371 757 <input file icon="accessories-text-editor"></input>
pascal@371 758 <label>Options</label>
pascal@371 759 <action type="lauch">leafpad /etc/ppp/options.pptp</action>
pascal@371 760 </button>
pascal@374 761 $(webbutton pptpclient)
pascal@371 762 <button>
pascal@371 763 <input file icon="forward"></input>
pascal@371 764 <label>Connect</label>
pascal@371 765 <action>grep -qs ^\$PPTP_USER /etc/ppp/chap-secrets || \
pascal@371 766 echo "\$PPTP_USER PPTP \"$PPTP_PASS\" *" >> /etc/ppp/chap-secrets</action>
pascal@371 767 <action>grep -qs ^\$PPTP_SERVER /etc/ppp/pptp-servers || \
pascal@371 768 echo "\$PPTP_SERVER" >> /etc/ppp/pptp-servers</action>
pascal@371 769 <action>PASS=""; [ -n "\$PPTP_PASS" ] && PASS="password \$PASS"; \
pascal@371 770 ENC=""; [ x\$PPTP_ENC == xtrue ] && ENC="require-mppe-128"; \
pascal@371 771 /usr/sbin/pptp \$PPTP_SERVER file /etc/ppp/options.pptp \$ENC user \$PPTP_USER \$PASS &
pascal@371 772 </action>
pascal@371 773 </button>
pascal@371 774 <button>
pascal@371 775 <input file icon="stop"></input>
pascal@371 776 <label>Disconnect</label>
pascal@371 777 <action>killall pptp</action>
pascal@371 778 </button>
pascal@371 779 </hbox>
pascal@371 780 </frame>
pascal@371 781 EOT
pascal@371 782 }
pascal@371 783
pascal@374 784 #
pascal@374 785 # Cisco EasyVPN
pascal@374 786 #
pascal@374 787 tab_easyvpn()
pascal@374 788 {
pascal@374 789 cat <<EOT
pascal@374 790 <frame Cisco EasyVPN>
pascal@374 791 <hbox>
pascal@374 792 <text use-markup="true">
pascal@374 793 <label>"<b>VPNC_OPTIONS</b>"</label>
pascal@374 794 </text>
pascal@374 795 <entry editable="false">
pascal@374 796 EOT
pascal@374 797 [ -n "$VPNC_OPTIONS" ] && cat << EOT
pascal@374 798 <default>$tmp</default>
pascal@374 799 EOT
pascal@374 800 cat << EOT
pascal@374 801 <variable>VPNC_OPTS</variable>
pascal@374 802 </entry>
pascal@374 803 $(helpbutton vpnc 80x30)
pascal@374 804 <button>
pascal@374 805 <input file icon="help"></input>
pascal@374 806 <label>more</label>
pascal@374 807 <action>$xterm -geometry 80x40 -title "vpnc help (q to quit)" -e "$(which vpnc) --long-help 2>&1 | less"</action>
pascal@374 808 </button>
pascal@374 809 $(editbutton /etc/daemons.conf)
pascal@374 810 </hbox>
pascal@374 811 $(configfile /etc/vpnc/default.conf VPNC_CONF)
pascal@374 812 $(datafile "/etc/vpnc/vpnc-script" VPNC_SCRIPT 'Script:')
pascal@374 813 <hbox>
pascal@374 814 $(startstopdaemon vpnc)
pascal@374 815 </hbox>
pascal@374 816 </frame>
pascal@374 817 EOT
pascal@374 818 }
pascal@374 819
pascal@375 820 #
pascal@375 821 # OpenVPN
pascal@375 822 #
pascal@375 823 tab_openvpn()
pascal@375 824 {
pascal@375 825 local i
pascal@375 826 local n
pascal@375 827 cat <<EOT
pascal@375 828 <frame OpenVPN>
pascal@375 829 EOT
pascal@375 830 n=1
pascal@375 831 for i in /etc/openvpn/*.conf ; do
pascal@375 832 [ -f $i ] || continue
pascal@375 833 configfile $i OPENVPN_CONF$n
pascal@375 834 n=$(($n + 1))
pascal@375 835 done
pascal@375 836 cat <<EOT
pascal@375 837 <hbox>
pascal@375 838 $(helpbutton openvpn 80x40)
pascal@375 839 $(startstopdaemon openvpn)
pascal@375 840 </hbox>
pascal@375 841 </frame>
pascal@375 842 EOT
pascal@375 843 }
pascal@375 844
pascal@371 845 data_vpn()
pascal@371 846 {
pascal@371 847 cat <<EOT
pascal@371 848 $([ -x /usr/sbin/dropbear -o -x /usr/sbin/sshd ] && echo "pppd" ||
pascal@371 849 echo "#") PPP/SSH tab_sshppp
pascal@371 850 pptp PPTP tab_pptp
pascal@374 851 vpnc EasyVPN tab_easyvpn
pascal@375 852 openvpn OpenVPN tab_openvpn
pascal@371 853 EOT
pascal@371 854 }
pascal@371 855
pascal@371 856 #
pascal@371 857 # VPN
pascal@371 858 #
pascal@371 859 tab_vpn()
pascal@371 860 {
pascal@371 861 use_tab data_vpn
pascal@371 862 }
pascal@272 863
pascal@371 864 #
pascal@371 865 # ether-wake
pascal@371 866 #
pascal@371 867 tab_etherwake()
pascal@371 868 {
pascal@371 869 cat <<EOT
pascal@271 870 <frame Ether-wake (busybox)>
pascal@141 871 <hbox>
pascal@141 872 <text use-markup="true">
pascal@151 873 <label>"<b>Machines :</b>"</label>
pascal@151 874 </text>
pascal@151 875 <entry editable="false">
pascal@151 876 <default>/etc/ethers</default>
pascal@151 877 <variable>ETHERS</variable>
pascal@151 878 </entry>
pascal@151 879 <button>
pascal@151 880 <input file icon="accessories-text-editor"></input>
pascal@372 881 <action>[ -s \$ETHERS ] || echo "#00:01:02:03:04:05 mystation" >\$ETHERS</action>
pascal@371 882 <action type="lauch">leafpad \$ETHERS</action>
pascal@151 883 </button>
pascal@151 884 </hbox>
pascal@151 885 <hbox>
pascal@151 886 <text use-markup="true">
pascal@141 887 <label>"<b>Options : </b>"</label>
pascal@141 888 </text>
pascal@271 889 <entry editable="true">
pascal@141 890 <variable>ETHERWAKE_OPTS</variable>
pascal@371 891 </entry>
pascal@371 892 $(helpbutton ether-wake 80x15)
pascal@371 893 <button>
pascal@371 894 <label>Start</label>
pascal@371 895 <input file icon="forward"></input>
pascal@371 896 <action>ether-wake \$ETHERWAKE_OPTS</action>
pascal@371 897 </button>
pascal@371 898 </hbox>
pascal@375 899 <frame>
pascal@375 900 <hbox>
pascal@375 901 EOT
pascal@375 902 if which ethtool > /dev/null; then
pascal@375 903 cat <<EOT
pascal@375 904 <text use-markup="true">
pascal@375 905 <label>"<b>Interface:</b>"</label>
pascal@375 906 </text>
pascal@375 907 <combobox>
pascal@375 908 <variable>ETHERWAKE_ETH</variable>
pascal@375 909 EOT
pascal@375 910 (cd /sys/class/net ; [ -d eth0 ] && ls -d eth* ) | \
pascal@375 911 awk '{ printf " <item>%s</item>\n",$1 }'
pascal@375 912 cat <<EOT
pascal@375 913 </combobox>
pascal@375 914 <button>
pascal@375 915 <label>Enable Wake On LAN</label>
pascal@375 916 <input file icon="forward"></input>
pascal@375 917 <action>ethtool -s \$ETHERWAKE_ETH wok g</action>
pascal@375 918 </button>
pascal@375 919 EOT
pascal@375 920 else
pascal@375 921 cat <<EOT
pascal@375 922 <vbox>
pascal@375 923 <text wrap="true" width-chars="58">
pascal@375 924 <label>
paul@398 925 "Ethtool can enable the Wake-on-lan
paul@378 926 feature on many Ethernet cards.
pascal@375 927 "
pascal@375 928 </label>
pascal@375 929 </text>
pascal@375 930 $(installbox ethtool)
pascal@375 931 </vbox>
pascal@375 932 EOT
pascal@375 933 fi
pascal@375 934 cat <<EOT
pascal@375 935 </hbox>
pascal@375 936 </frame>
pascal@371 937 </frame>
pascal@371 938 EOT
pascal@371 939 }
pankso@33 940
pascal@371 941 data_main()
pascal@371 942 {
pascal@371 943 cat <<EOT
pascal@371 944 #program tab name function
pascal@371 945 ifconfig Connections tab_connections
pascal@371 946 udhcpc DHCP tab_udhcpc
pascal@371 947 ifconfig Static\ IP tab_fixed_ip
pascal@371 948 pppoe PPPoE tab_pppoe
pascal@371 949 pppd PPP tab_ppp
pascal@371 950 true VPN tab_vpn
pascal@371 951 ether-wake Etherwake tab_etherwake
jozee@461 952 true Configuration tab_system
pascal@371 953 EOT
pascal@371 954 }
pascal@371 955
pascal@371 956 tab_main()
pascal@371 957 {
pascal@371 958 use_tab data_main
pascal@371 959 }
pascal@371 960
pascal@371 961 ######################################################
pascal@371 962 #
pascal@371 963 # Netbox GUI
pascal@371 964 #
pascal@371 965 ######################################################
pascal@371 966
pascal@371 967 # English/French help dialog.
pascal@371 968 export HELP='
pascal@371 969 <window title="Network status" icon-name="network-wire">
pascal@371 970 <vbox>
pascal@371 971 <text use-markup="true">
pascal@371 972 <label>
pascal@371 973 "
pascal@371 974 <b>SliTaz - Netbox</b>"
pascal@371 975 </label>
pascal@371 976 </text>
pascal@371 977 <frame English>
pascal@371 978 <text wrap="true" width-chars="58">
pascal@371 979 <label>
pascal@371 980 "Netbox lets you manage network connections by getting a dynamic IP by
pascal@371 981 DHCP or a static IP and setup servers. Netbox can start or stop
pascal@371 982 networking, configure network interfaces or directly edit files."
pascal@371 983 </label>
pascal@371 984 </text>
pascal@371 985 </frame>
pascal@371 986 <frame Francais>
pascal@371 987 <text wrap="true" width-chars="58">
pascal@371 988 <label>
pascal@371 989 "Netbox vous permet de gerer les connexions reseau avec une IP
pascal@371 990 statique ou en obtenant une IP dynamique par DHCP, et de parametrer
pascal@371 991 les serveurs. Netbox peut demarrer ou arreter le reseau, configurer
pascal@371 992 les interfaces reseau ou editer directement les fichiers."
pascal@371 993 </label>
pascal@371 994 </text>
pascal@371 995 </frame>
pascal@371 996 </vbox>
pascal@371 997 </window>
pascal@371 998 '
pascal@371 999
pascal@371 1000 # Interface status with ifconfig without arguments to show all
pascal@371 1001 # active connections.
pascal@371 1002 #
pascal@371 1003 export IFCONFIG="
pascal@371 1004 <window title=\"Network status\" icon-name=\"network-wire\">
pascal@371 1005 <vbox>
pascal@371 1006 $(tab_status)
pascal@371 1007 <hbox>
pascal@371 1008 <button>
pascal@371 1009 <input file icon=\"gtk-close\"></input>
pascal@371 1010 <action type=\"closewindow\">IFCONFIG</action>
pascal@371 1011 </button>
pascal@371 1012 </hbox>
pascal@371 1013 </vbox>
pascal@371 1014 </window>"
pascal@371 1015
pascal@371 1016 # The main dialog with notebook, start/stop buttons and all options.
pascal@371 1017 # Note that /etc/network.conf is seded when an interface is activated.
pascal@371 1018 #
pascal@371 1019 head='
pascal@371 1020 <window title="SliTaz Netbox Manager" icon-name="network-wired">
pascal@371 1021 <vbox>
pascal@371 1022
pascal@371 1023 <hbox>
pascal@371 1024 <text use-markup="true">
jozee@461 1025 <label>"<b>Network Manager</b>"</label>
pascal@371 1026 </text>
pascal@371 1027 <pixmap>
pascal@371 1028 <input file>/usr/share/pixmaps/netbox.png</input>
pascal@371 1029 </pixmap>
pascal@371 1030 </hbox>
pascal@371 1031 '
pascal@371 1032 bottom='
pankso@297 1033 <hbox>
pankso@297 1034 <button>
pankso@297 1035 <label>Wireless manager</label>
pankso@297 1036 <input file icon="network-wireless"></input>
pankso@297 1037 <action>wifibox &</action>
pankso@297 1038 </button>
pankso@297 1039 <button>
pankso@297 1040 <label>Refresh list</label>
pankso@297 1041 <input file icon="reload"></input>
pankso@297 1042 <action>refresh:INTERFACE_LIST</action>
pankso@297 1043 </button>
pankso@297 1044 <button>
pankso@297 1045 <label>Full status</label>
pankso@297 1046 <input file icon="dialog-information"></input>
pankso@297 1047 <action type="launch">IFCONFIG</action>
pankso@297 1048 </button>
pankso@297 1049 <button help>
pankso@297 1050 <label>Help</label>
pankso@297 1051 <action type="launch">HELP</action>
pankso@297 1052 </button>
pankso@297 1053 <button>
pankso@297 1054 <label>Quit</label>
pankso@297 1055 <input file icon="exit"></input>
pankso@297 1056 <action type="exit">Exit</action>
pankso@297 1057 </button>
pankso@297 1058 </hbox>
pankso@194 1059
pankso@297 1060 </vbox>
pankso@38 1061 </window>
pankso@33 1062 '
pascal@371 1063
pascal@371 1064 NET_BOX="${head}$(tab_main)${bottom}"
pascal@126 1065
pascal@126 1066 export NET_BOX
pascal@126 1067
pascal@371 1068 # TODO: Modules(Network kernel modules)
pankso@33 1069
pankso@33 1070 # Only root can configure network.
pankso@33 1071 check_root
pankso@297 1072
pascal@177 1073 # Configure and connect if button Connect was pressed.
pascal@177 1074 if ! grep -qs ^name /etc/ppp/options ; then
pascal@177 1075 # Generate /etc/ppp/options
pascal@177 1076 cat > /etc/ppp/options << _EOT_
pascal@177 1077 plugin rp-pppoe.so
pascal@177 1078 name provider-ID
pascal@177 1079 noipdefault
pascal@177 1080 defaultroute
pascal@177 1081 mtu 1492
pascal@177 1082 mru 1492
pascal@177 1083 lock
pascal@177 1084 _EOT_
pascal@177 1085 # Generate /etc/ppp/pap-secrets
pascal@177 1086 cat > /etc/ppp/pap-secrets << _EOT_
pascal@177 1087 # Secrets for authentication using PAP
pascal@177 1088 # client server secret IP addresses
pascal@177 1089 _EOT_
pascal@177 1090 # Generate /etc/ppp/chap-secrets
pascal@177 1091 cat > /etc/ppp/chap-secrets << _EOT_
pascal@177 1092 # Secrets for authentication using CHAP
pascal@177 1093 # client server secret IP addresses
pascal@177 1094 _EOT_
pascal@177 1095 fi
pascal@259 1096 gtkdialog --center --program=NET_BOX | grep -a 'EXIT="restart"' && continue
pankso@33 1097 exit 0
pascal@259 1098 done