wok-6.x annotate ppp/stuff/ppp.cgi @ rev 18020
Up rp-pppoe (3.11)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat May 02 22:46:46 2015 +0200 (2015-05-02) |
parents | 22d242cf69af |
children | 5c05d949d429 |
rev | line source |
---|---|
pascal@18017 | 1 #!/bin/sh |
pascal@18017 | 2 # |
pascal@18017 | 3 # Network/PPP configuration CGI interface |
pascal@18017 | 4 # |
pascal@18017 | 5 # Copyright (C) 2015 SliTaz GNU/Linux - BSD License |
pascal@18017 | 6 # |
pascal@18017 | 7 |
pascal@18017 | 8 # Common functions from libtazpanel |
pascal@18017 | 9 . lib/libtazpanel |
pascal@18017 | 10 get_config |
pascal@18017 | 11 |
pascal@18017 | 12 |
pascal@18017 | 13 case "$1" in |
pascal@18017 | 14 menu) |
pascal@18017 | 15 TEXTDOMAIN_original=$TEXTDOMAIN |
pascal@18017 | 16 export TEXTDOMAIN='ppp' |
pascal@18017 | 17 |
pascal@18017 | 18 cat <<EOT |
pascal@18020 | 19 <li><a data-icon="removable" href="ppp.cgi#ppprtc" data-root>$(_ 'PPP Modem')</a></li> |
pascal@18017 | 20 <li><a data-icon="upgrade" href="ppp.cgi#pppnc" data-root>$(_ 'Route shortcut')</a></li> |
pascal@18017 | 21 EOT |
pascal@18017 | 22 [ "$(which pptp 2>/dev/null)$(which pptpd 2>/dev/null)" ] && cat <<EOT |
pascal@18017 | 23 <li><a data-icon="eth" href="ppp.cgi#pptp" data-root>$(_ 'VPN PPTP')</a></li> |
pascal@18017 | 24 EOT |
pascal@18017 | 25 [ "$(which pppssh 2>/dev/null)" ] && cat <<EOT |
pascal@18017 | 26 <li><a data-icon="eth" href="ppp.cgi#pppssh" data-root>$(_ 'VPN PPP/SSH')</a></li> |
pascal@18017 | 27 EOT |
pascal@18017 | 28 export TEXTDOMAIN=$TEXTDOMAIN_original |
pascal@18017 | 29 exit |
pascal@18017 | 30 esac |
pascal@18017 | 31 |
pascal@18017 | 32 |
pascal@18017 | 33 # |
pascal@18017 | 34 # Commands |
pascal@18017 | 35 # |
pascal@18017 | 36 |
pascal@18017 | 37 case " $(GET) " in |
pascal@18017 | 38 *\ setppprtc\ *) |
pascal@18017 | 39 if [ "$(GET start_rtc)" -a "$(GET user)" ]; then |
pascal@18017 | 40 grep -s "$(GET user)" /etc/ppp/pap-secrets || |
pascal@18017 | 41 echo "$(GET user) * $(GET pass)" >> /etc/ppp/pap-secrets |
pascal@18017 | 42 grep -s "$(GET user)" /etc/ppp/chap-secrets || |
pascal@18017 | 43 echo "$(GET user) * $(GET pass)" >> /etc/ppp/chap-secrets |
pascal@18017 | 44 sed -i 's/^name /d' /etc/ppp/options |
pascal@18017 | 45 echo "name $(GET user)" >> /etc/ppp/options |
pascal@18017 | 46 /etc/ppp/scripts/ppp-off |
pascal@18017 | 47 /etc/ppp/scripts/ppp-on & |
pascal@18017 | 48 fi |
pascal@18017 | 49 if [ "$(GET stop_rtc)" ]; then |
pascal@18017 | 50 /etc/ppp/scripts/ppp-off |
pascal@18017 | 51 fi |
pascal@18017 | 52 ;; |
pascal@18017 | 53 *\ setpppoe\ *) |
pascal@18017 | 54 if [ "$(GET start_pppoe)" -a "$(GET user)" ]; then |
pascal@18017 | 55 grep -s "$(GET user)" /etc/ppp/pap-secrets || |
pascal@18017 | 56 echo "$(GET user) * $(GET pass)" >> /etc/ppp/pap-secrets |
pascal@18017 | 57 grep -s "$(GET user)" /etc/ppp/chap-secrets || |
pascal@18017 | 58 echo "$(GET user) * $(GET pass)" >> /etc/ppp/chap-secrets |
pascal@18017 | 59 grep -qs pppoe /etc/ppp/options || cat > /etc/ppp/options <<EOT |
pascal@18017 | 60 plugin rp-pppoe.so |
pascal@18017 | 61 noipdefault |
pascal@18017 | 62 defaultroute |
pascal@18017 | 63 mtu 1492 |
pascal@18017 | 64 mru 1492 |
pascal@18017 | 65 lock |
pascal@18017 | 66 EOT |
pascal@18017 | 67 sed -i 's/^name /d' /etc/ppp/options |
pascal@18017 | 68 echo "name $(GET user)" >> /etc/ppp/options |
pascal@18017 | 69 ( . /etc/network.conf ; pppd $INTERFACE & ) |
pascal@18017 | 70 fi |
pascal@18017 | 71 if [ "$(GET stop_pppoe)" ]; then |
pascal@18017 | 72 killall pppd |
pascal@18017 | 73 fi |
pascal@18017 | 74 ;; |
pascal@18017 | 75 *\ setpppnc\ *) |
pascal@18017 | 76 [ "$(GET stop_pppncs)" ] && killall pppnc-server |
pascal@18017 | 77 [ "$(GET start_pppncs)" ] && |
pascal@18017 | 78 pppnc-server $(GET port) "$(GET localip):$(GET remoteip)" & |
pascal@18017 | 79 [ "$(GET stop_pppncc)" ] && killall pppnc-client |
pascal@18017 | 80 [ "$(GET start_pppncc)" ] && |
pascal@18017 | 81 pppnc-client $(GET serverip) $(GET port) "$(GET routes)" & |
pascal@18017 | 82 ;; |
pascal@18017 | 83 *\ setpppssh\ *) |
pascal@18017 | 84 cat > /etc/ppp/pppssh <<EOT |
pascal@18017 | 85 PEER="$(GET peer)" |
pascal@18017 | 86 SSHARG="$(GET ssharg)" |
pascal@18017 | 87 LOCALIP="$(GET localip)" |
pascal@18017 | 88 REMOTEIP="$(GET remoteip)" |
pascal@18017 | 89 LOCALPPP="$(GET localpppopt)" |
pascal@18017 | 90 REMOTEPPP="$(GET remotepppopt)" |
pascal@18017 | 91 ROUTES="$(GET routes)" |
pascal@18017 | 92 EOT |
pascal@18017 | 93 [ "$(GET pass)" ] && export DROPBEAR_PASSWORD="$(GET pass)" |
pascal@18017 | 94 if [ "$(GET send_key)" ]; then |
pascal@18017 | 95 ( dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key ; |
pascal@18017 | 96 cat /etc/ssh/ssh_host_rsa_key.pub ) 2> /dev/null | \ |
pascal@18017 | 97 grep ^ssh | dbclient $(echo $(GET send_key) | sed \ |
pascal@18017 | 98 's/.*\([A-Za-z0-9_\.-]*\).*/\1/') "mkdir .ssh 2> /dev/null ; \ |
pascal@18017 | 99 while read key; do for i in authorized_keys authorized_keys2; do \ |
pascal@18017 | 100 grep -qs '\$key' .ssh/\$i || echo '\$key' >> .ssh/\$i ; done ; done ; \ |
pascal@18017 | 101 chmod 700 .ssh ; chmod 600 .ssh/authorized_keys*" |
pascal@18017 | 102 fi |
pascal@18017 | 103 if [ "$(GET stop_pppssh)" ]; then |
pascal@18017 | 104 ppp="$(sed '/pppd/!d;s/.*="\([^"]*\).*/\1/' /usr/bin/pppssh)" |
pascal@18017 | 105 kill $(busybox ps x | grep "$ppp" | awk '/dbclient/{print $1}') |
pascal@18017 | 106 fi |
pascal@18017 | 107 if [ "$(GET start_pppssh)" ]; then |
pascal@18017 | 108 pppssh "$(GET ssharg) $(GET peer)" \ |
pascal@18017 | 109 "$(GET localip):$(GET remoteip) $(GET localpppopt)" \ |
pascal@18017 | 110 "$(GET remotepppopt)" & |
pascal@18017 | 111 fi |
pascal@18017 | 112 ;; |
pascal@18017 | 113 esac |
pascal@18017 | 114 |
pascal@18017 | 115 USERNAME="$(sed '/^name/!d;s/^[^ ]* *//' /etc/ppp/options)" |
pascal@18017 | 116 PASSWORD="$(awk -v key=$USERNAME "\$1==key{print \$3}" /etc/ppp/pap-secrets)" |
pascal@18017 | 117 ACCOUNT="$(sed '/^ACCOUNT=/!d;s/^.*=\([^ \t]*\).*/\1/' /etc/ppp/scripts/ppp-on)" |
pascal@18017 | 118 PASSRTC="$(sed '/^PASSWORD=/!d;s/^.*=\([^ \t]*\).*/\1/' /etc/ppp/scripts/ppp-on)" |
pascal@18017 | 119 PHONE="$(sed '/^TELEPHONE=/!d;s/^.*=\([^ \t]*\).*/\1/' /etc/ppp/scripts/ppp-on)" |
pascal@18020 | 120 busybox ps x | grep -v grep | grep -q pppnc_server || stops_disabled='disabled' |
pascal@18020 | 121 busybox ps x | grep -v grep | grep -q pppnc_client || stopc_disabled='disabled' |
pascal@18017 | 122 TITLE="$(_ 'TazPanel - Network') - $(_ 'PPP Connections')" |
pascal@18017 | 123 header |
pascal@18017 | 124 xhtml_header | sed 's/id="content"/id="content-sidebar"/' |
pascal@18017 | 125 cat << EOT |
pascal@18017 | 126 <div id="sidebar"> |
pascal@18017 | 127 <section> |
pascal@18017 | 128 <header> |
pascal@18017 | 129 $(_ 'Documentation') |
pascal@18017 | 130 </header> |
pascal@18017 | 131 <a data-icon="web" href="http://ppp.samba.org/" target="_blank">$(_ 'PPP web page')</a><p> |
pascal@18017 | 132 <a data-icon="help" href="index.cgi?exec=pppd%20--help" target="_blank">$(_ 'PPP help')</a><p> |
pascal@18017 | 133 <a data-icon="help" href="index.cgi?exec=man%20pppd" target="_blank">$(_ 'PPP Manual')</a><p> |
pascal@18017 | 134 EOT |
pascal@18017 | 135 [ "$(which pptp 2>/dev/null)" ] && cat <<EOT |
pascal@18017 | 136 <a data-icon="web" href="http://pptpclient.sourceforge.net/" target="_blank">$(_n 'PPTP web page')</a><p> |
pascal@18017 | 137 <a data-icon="help" href="index.cgi?exec=pptp" target="_blank">$(_ 'PPTP Help')</a><p> |
pascal@18017 | 138 EOT |
pascal@18017 | 139 [ "$(which pptpd 2>/dev/null)" ] && cat <<EOT |
pascal@18017 | 140 <a data-icon="web" href="http://poptop.sourceforge.net/" target="_blank">$(_n 'PPTPD web page')</a><p> |
pascal@18017 | 141 <a data-icon="help" href="index.cgi?exec=pptpd%20--help" target="_blank">$(_ 'PPTPD Help')</a><p> |
pascal@18017 | 142 EOT |
pascal@18017 | 143 [ "$(which pppssh 2>/dev/null)" ] && cat <<EOT |
pascal@18017 | 144 <a data-icon="web" href="http://doc.slitaz.org/en:guides:vpn" target="_blank">$(_n 'VPN Wiki')</a><p> |
pascal@18017 | 145 <a data-icon="help" href="index.cgi?exec=dbclient" target="_blank">$(_ 'SSH Help')</a><p> |
pascal@18017 | 146 EOT |
pascal@18017 | 147 cat << EOT |
pascal@18017 | 148 <footer> |
pascal@18017 | 149 </footer> |
pascal@18017 | 150 </section> |
pascal@18017 | 151 <section> |
pascal@18017 | 152 <header> |
pascal@18017 | 153 $(_ 'Configuration') |
pascal@18017 | 154 </header> |
pascal@18017 | 155 <a data-icon="conf" href="index.cgi?file=/etc/ppp/scripts/ppp-on" target="_blank">$(_ 'PPP RTC script')</a><p> |
pascal@18017 | 156 <a data-icon="conf" href="index.cgi?file=/etc/ppp/scripts/ppp-on-dialer" target="_blank">$(_ 'PPP dailer chat')</a><p> |
pascal@18017 | 157 <a data-icon="conf" href="index.cgi?file=/etc/ppp/options" target="_blank">$(_ 'PPP options')</a><p> |
pascal@18017 | 158 <a data-icon="conf" href="index.cgi?file=/etc/ppp/chap-secrets" target="_blank">$(_ 'chap users')</a><p> |
pascal@18017 | 159 <a data-icon="conf" href="index.cgi?file=/etc/ppp/pap-secrets" target="_blank">$(_ 'pap users')</a><p> |
pascal@18017 | 160 EOT |
pascal@18017 | 161 for i in /etc/ppp/peers/* ; do |
pascal@18017 | 162 [ -s "$i" ] && cat << EOT |
pascal@18017 | 163 <a data-icon="conf" href="index.cgi?file=$i" target="_blank">$(basename $i)</a><p> |
pascal@18017 | 164 EOT |
pascal@18017 | 165 done |
pascal@18017 | 166 [ "$(which pptpd 2>/dev/null)" ] && cat <<EOT |
pascal@18017 | 167 <a data-icon="conf" href="index.cgi?file=/etc/pptpd.conf" target="_blank">$(_ 'pptpd.conf')</a><p> |
pascal@18017 | 168 EOT |
pascal@18017 | 169 if [ "$(busybox ps x | grep "pppd" | awk '/modem/{print $1}')" ]; then |
pascal@18017 | 170 start_disabled='disabled' |
pascal@18017 | 171 else |
pascal@18017 | 172 stop_disabled='disabled' |
pascal@18017 | 173 fi |
pascal@18020 | 174 if [ "$(busybox ps x | grep "pppd" | awk '/eth/{print $1}')" ]; then |
pascal@18020 | 175 startoe_disabled='disabled' |
pascal@18020 | 176 else |
pascal@18020 | 177 stopoe_disabled='disabled' |
pascal@18020 | 178 fi |
pascal@18017 | 179 cat << EOT |
pascal@18017 | 180 <footer> |
pascal@18017 | 181 </footer> |
pascal@18017 | 182 </section> |
pascal@18017 | 183 </div> |
pascal@18017 | 184 |
pascal@18020 | 185 <a name="ppprtc"></a> |
pascal@18017 | 186 <section> |
pascal@18017 | 187 <header> |
pascal@18017 | 188 <span data-icon="removable">$(_ 'RTC modem') - |
pascal@18017 | 189 $(_ 'Manage RTC Internet connections')</span> |
pascal@18017 | 190 </header> |
pascal@18017 | 191 <form action="index.cgi" id="indexform"></form> |
pascal@18017 | 192 <form method="get" action="?setppprtc"> |
pascal@18017 | 193 <table> |
pascal@18017 | 194 <tr> |
pascal@18017 | 195 <td>$(_ 'Username')</td> |
pascal@18017 | 196 <td><input type="text" name="user" size="40" value="$ACCOUNT" /></td> |
pascal@18017 | 197 </tr> |
pascal@18017 | 198 <tr> |
pascal@18017 | 199 <td>$(_ 'Password')</td> |
pascal@18017 | 200 <td><input type="text" name="pass" size="40" value="$PASSRTC" /></td> |
pascal@18017 | 201 </tr> |
pascal@18017 | 202 <tr> |
pascal@18017 | 203 <td>$(_ 'Phone number')</td> |
pascal@18017 | 204 <td><input type="text" name="phone" size="40" value="$PHONE" /></td> |
pascal@18017 | 205 </tr> |
pascal@18017 | 206 </table> |
pascal@18017 | 207 </form> |
pascal@18017 | 208 <footer><!-- |
pascal@18017 | 209 --><button form="conf" type="submit" name="start_rtc" data-icon="start" $start_disabled>$(_ 'Start' )</button><!-- |
pascal@18017 | 210 --><button form="conf" type="submit" name="stop_rtc" data-icon="stop" $stop_disabled >$(_ 'Stop' )</button><!-- |
pascal@18017 | 211 --></footer> |
pascal@18017 | 212 </section> |
pascal@18017 | 213 |
pascal@18017 | 214 <a name="pppoe"></a> |
pascal@18017 | 215 <section> |
pascal@18017 | 216 <header> |
pascal@18017 | 217 <span data-icon="eth">$(_ 'Cable Modem') - |
pascal@18017 | 218 $(_ 'Manage PPPoE Internet connections')</span> |
pascal@18017 | 219 </header> |
pascal@18017 | 220 <form method="get" action="?setpppoe"> |
pascal@18017 | 221 <table> |
pascal@18017 | 222 <tr> |
pascal@18017 | 223 <td>$(_ 'Username')</td> |
pascal@18017 | 224 <td><input type="text" name="user" size="40" value="$USERNAME" /></td> |
pascal@18017 | 225 </tr> |
pascal@18017 | 226 <tr> |
pascal@18017 | 227 <td>$(_ 'Password')</td> |
pascal@18017 | 228 <td><input type="text" name="pass" size="40" value="$PASSWORD" /></td> |
pascal@18017 | 229 </tr> |
pascal@18017 | 230 </table> |
pascal@18017 | 231 </form> |
pascal@18017 | 232 <footer><!-- |
pascal@18020 | 233 --><button form="conf" type="submit" name="start_pppoe" data-icon="start" $startoe_disabled>$(_ 'Start' )</button><!-- |
pascal@18020 | 234 --><button form="conf" type="submit" name="stop_pppoe" data-icon="stop" $stopoe_disabled >$(_ 'Stop' )</button><!-- |
pascal@18017 | 235 --></footer> |
pascal@18017 | 236 </section> |
pascal@18017 | 237 |
pascal@18017 | 238 <a name="pppnc"></a> |
pascal@18017 | 239 <section> |
pascal@18017 | 240 <header> |
pascal@18017 | 241 <span data-icon="upgrade">$(_ 'Route shortcut') - |
pascal@18017 | 242 $(_ 'Reach unreachable networks')</span> |
pascal@18017 | 243 </header> |
pascal@18017 | 244 <form method="get" action="?setppprc"> |
pascal@18017 | 245 <table> |
pascal@18017 | 246 <tr> |
pascal@18017 | 247 <td>$(_ 'TCP port')</td> |
pascal@18017 | 248 <td><input type="text" name="port" size="50" value="1111" /></td> |
pascal@18017 | 249 </tr> |
pascal@18017 | 250 <tr> <td colspan=2 align=center>--- $(_ 'Server only') ---</td> </tr> |
pascal@18017 | 251 <tr> |
pascal@18017 | 252 <td>$(_ 'Local IP address')</td> |
pascal@18017 | 253 <td><input type="text" name="localip" size="50" value="${LOCALIP:-192.168.254.1}" /></td> |
pascal@18017 | 254 </tr> |
pascal@18017 | 255 <tr> |
pascal@18017 | 256 <td>$(_ 'Remote IP address')</td> |
pascal@18017 | 257 <td><input type="text" name="remoteip" size="50" value="${REMOTEIP:-192.168.254.2}" /></td> |
pascal@18017 | 258 <tr> <td colspan=2 align=center>--- $(_ 'Client only') ---</td> </tr> |
pascal@18017 | 259 <tr> |
pascal@18017 | 260 <td>$(_ 'Server IP address')</td> |
pascal@18017 | 261 <td><input type="text" name="serverip" size="50" value="1.2.3.4" /></td> |
pascal@18017 | 262 </tr> |
pascal@18017 | 263 <tr> |
pascal@18017 | 264 <td>$(_ 'Server routes')</td> |
pascal@18017 | 265 <td><input type="text" name="routes" size="50" value="${ROUTES:-192.168.10.0/24 192.168.20.0/28}" title="$(_ 'Routes on peer network to import')"/></td> |
pascal@18017 | 266 </tr> |
pascal@18017 | 267 </table> |
pascal@18017 | 268 </form> |
pascal@18017 | 269 <footer><!-- |
pascal@18017 | 270 --><button form="conf" type="submit" name="start_pppncs" data-icon="start" >$(_ 'Start server' )</button><!-- |
pascal@18017 | 271 --><button form="conf" type="submit" name="stop_pppncs" data-icon="stop" $stops_disabled>$(_ 'Stop server' )</button><!-- |
pascal@18017 | 272 --><button form="conf" type="submit" name="start_pppncc" data-icon="start" >$(_ 'Start client' )</button><!-- |
pascal@18017 | 273 --><button form="conf" type="submit" name="stop_pppncc" data-icon="stop" $stopc_disabled>$(_ 'Stop client' )</button><!-- |
pascal@18017 | 274 --></footer> |
pascal@18017 | 275 </section> |
pascal@18017 | 276 EOT |
pascal@18017 | 277 if [ "$(which pppssh 2>/dev/null)" ]; then |
pascal@18017 | 278 [ -s /etc/ppp/pppssh ] && . /etc/ppp/pppssh |
pascal@18017 | 279 ppp="$(sed '/pppd/!d;s/.*="\([^"]*\).*/\1/' /usr/bin/pppssh)" |
pascal@18017 | 280 if [ "$(busybox ps x | grep "$ppp" | awk '/dbclient/{print $1}')" ]; then |
pascal@18017 | 281 start_disabled='disabled' |
pascal@18017 | 282 else |
pascal@18017 | 283 stop_disabled='disabled' |
pascal@18017 | 284 fi |
pascal@18017 | 285 cat <<EOT |
pascal@18017 | 286 <a name="pppssh"></a> |
pascal@18017 | 287 <section> |
pascal@18017 | 288 <header> |
pascal@18017 | 289 <span data-icon="eth">$(_ 'Virtual Private Network') - |
pascal@18017 | 290 $(_ 'Manage private TCP/IP connections')</span> |
pascal@18017 | 291 </header> |
pascal@18017 | 292 <form method="get" action="?setpppssh"> |
pascal@18017 | 293 <table> |
pascal@18017 | 294 <tr> |
pascal@18017 | 295 <td>$(_ 'Peer')</td> |
pascal@18017 | 296 <td><input type="text" name="peer" size="50" value="${PEER:-user@elsewhere}" /></td> |
pascal@18017 | 297 </tr> |
pascal@18017 | 298 <tr> |
pascal@18017 | 299 <td>$(_ 'SSH options')</td> |
pascal@18017 | 300 <td><input type="text" name="ssharg" size="50" value="$SSHARG" /></td> |
pascal@18017 | 301 </tr> |
pascal@18017 | 302 <tr> |
pascal@18017 | 303 <td>$(_ 'Password')</td> |
pascal@18017 | 304 <td><input type="password" name="pass" size="50" title="Should be empty to use the SSH key ; useful to send the SSH key only" /></td> |
pascal@18017 | 305 </tr> |
pascal@18017 | 306 <tr> |
pascal@18017 | 307 <td>$(_ 'Local IP address')</td> |
pascal@18017 | 308 <td><input type="text" name="localip" size="50" value="${LOCALIP:-192.168.254.1}" /></td> |
pascal@18017 | 309 </tr> |
pascal@18017 | 310 <tr> |
pascal@18017 | 311 <td>$(_ 'Remote IP address')</td> |
pascal@18017 | 312 <td><input type="text" name="remoteip" size="50" value="${REMOTEIP:-192.168.254.2}" /></td> |
pascal@18017 | 313 </tr> |
pascal@18017 | 314 <tr> |
pascal@18017 | 315 <td>$(_ 'Local PPP options')</td> |
pascal@18017 | 316 <td><input type="text" name="localpppopt" size="50" value="$LOCALPPP" /></td> |
pascal@18017 | 317 </tr> |
pascal@18017 | 318 <tr> |
pascal@18017 | 319 <td>$(_ 'Remote PPP options')</td> |
pascal@18017 | 320 <td><input type="text" name="remotepppopt" size="50" value="${REMOTEPPP:-proxyarp}" title="$(_ "You may 'proxyarp' to use the new routes")" /></td> |
pascal@18017 | 321 </tr> |
pascal@18017 | 322 <tr> |
pascal@18017 | 323 <td>$(_ 'Peer routes')</td> |
pascal@18017 | 324 <td><input type="text" name="routes" size="50" value="${ROUTES:-192.168.10.0/24 192.168.20.0/28}" title="$(_ 'Routes on peer network to import')"/></td> |
pascal@18017 | 325 </tr> |
pascal@18017 | 326 </table> |
pascal@18017 | 327 </form> |
pascal@18017 | 328 <footer><!-- |
pascal@18017 | 329 --><button form="conf" type="submit" name="start_pppssh" data-icon="start" $start_disabled>$(_ 'Start' )</button><!-- |
pascal@18017 | 330 --><button form="conf" type="submit" name="stop_pppssh" data-icon="stop" $stop_disabled>$(_ 'Stop' )</button><!-- |
pascal@18017 | 331 --><button form="conf" type="submit" name="send_key" data-icon="sync" >$(_ 'Send SSH key' )</button><!-- |
pascal@18017 | 332 --></footer> |
pascal@18017 | 333 </section> |
pascal@18017 | 334 EOT |
pascal@18017 | 335 fi |
pascal@18017 | 336 |
pascal@18017 | 337 xhtml_footer |
pascal@18017 | 338 exit 0 |