#!/usr/bin/perl
-#
-# SmoothWall CGIs
-#
-# This code is distributed under the terms of the GPL
-#
-# (c) The SmoothWall Team
-#
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
use strict;
}
elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
{
- unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|fritzdsl|bewanadsl|eagleusbadsl)$/) {
+ unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|pppoeatm)$/) {
$errormessage = $Lang::tr{'invalid input'};
goto ERROR; }
my $type = $pppsettings{'TYPE'};
}
elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
{
- if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|usb\/ttyACM0|usb\/ttyACM1|usb\/ttyACM2|usb\/ttyACM3|isdn1|isdn2)$/) {
+ if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM0|ttyACM1|ttyACM2|ttyACM3|isdn1|isdn2)$/) {
$errormessage = $Lang::tr{'invalid input'};
goto ERROR; }
- if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'DTERATE'} !~ /^(9600|19200|38400|57600|115200|230400|460800)$/) {
+ if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'DTERATE'} !~ /^(9600|19200|38400|57600|115200|230400|460800|921600)$/) {
$errormessage = $Lang::tr{'invalid input'};
goto ERROR; }
if ($pppsettings{'TYPE'} eq 'modem' && $pppsettings{'DIALMODE'} !~ /^(T|P)$/) {
$errormessage = $Lang::tr{'only digits allowed in holdoff field'};
goto ERROR; }
- my $drivererror = 0;
- if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk)$/) {
- my $modem = '';
- my $speedtouch = &Header::speedtouchversion;
- if ($speedtouch >=0 && $speedtouch <=4) {
- if ($speedtouch ==4) { $modem='v4_b'; } else { $modem='v0123'; }
- $pppsettings{'MODEM'} = $modem;
- } else {
- $modem='v0123';
- $errormessage ="$Lang::tr{'unknown'} Rev $speedtouch";
- goto ERROR;
- }
- if (! -e "${General::swroot}/alcatelusb/firmware.$modem.bin") {
- $errormessage = $Lang::tr{'no alcatelusb firmware'};
- $drivererror = 1;
- goto ERROR;
- }
- }
-
- if($pppsettings{'TYPE'} eq 'eciadsl' && (!(-e "${General::swroot}/eciadsl/synch.bin"))) {
- $errormessage = $Lang::tr{'no eciadsl synch.bin file'};
- $drivererror = 1;
- goto ERROR; }
-
- if($pppsettings{'TYPE'} eq 'fritzdsl' && (!(-e "/lib/modules/$kernel/misc/fcdslusb.o.gz"))) {
- $errormessage = $Lang::tr{'no fritzdsl driver'};
- $drivererror = 1;
- goto ERROR; }
-
- if( $pppsettings{'USEIBOD'} eq 'on' && $pppsettings{'COMPORT'} eq 'isdn1') {
- $errormessage = $Lang::tr{'ibod for dual isdn only'};
- goto ERROR; }
-
if ($pppsettings{'TYPE'} eq 'pptp') {
$errormessage = '';
if ($pppsettings{'METHOD'} eq 'STATIC') {
}
if ($errormessage ne '') {goto ERROR; }
}
-
- if ($pppsettings{'TYPE'} =~ /^(alcatelusb|alcatelusbk|amedynusbadsl|conexantusbadsl|conexantpciadsl|3cp4218usbadsl|pulsardsl|eciadsl|fritzdsl|bewanadsl|eagleusbadsl)$/) {
+ if ($pppsettings{'TYPE'} =~ /^(pppoeatm)$/) {
if ( ($pppsettings{'VPI'} eq '') || ($pppsettings{'VCI'} eq '') ) {
$errormessage = $Lang::tr{'invalid vpi vpci'};
goto ERROR; }
if ( $pppsettings{'PROTOCOL'} eq '' ) {
$errormessage = $Lang::tr{'invalid input'};
goto ERROR; }
- }
-
+ }
+
if ( ($pppsettings{'PROTOCOL'} eq 'RFC1483') && ($pppsettings{'METHOD'} eq '') && \
($pppsettings{'TYPE'} !~ /^(alcatelusb|fritzdsl)$/)) {
$errormessage = $Lang::tr{'invalid input'};
$errormessage = $Lang::tr{'dod not compatible with ddns'};
goto ERROR; }
- if ( ($pppsettings{'TYPE'} =~ /^(bewanadsl)$/) && $pppsettings{'MODEM'} eq '') {
- $errormessage = $Lang::tr{'no modem selected'};
- goto ERROR; }
-
- if( $pppsettings{'PROTOCOL'} eq 'RFC1483') {
- $pppsettings{'ENCAP'} = $pppsettings{'ENCAP_RFC1483'}; }
- if( $pppsettings{'PROTOCOL'} eq 'RFC2364') {
- $pppsettings{'ENCAP'} = $pppsettings{'ENCAP_RFC2364'}; }
+# if( $pppsettings{'PROTOCOL'} eq 'RFC1483') {
+# $pppsettings{'ENCAP'} = $pppsettings{'ENCAP_RFC1483'}; }
+# if( $pppsettings{'PROTOCOL'} eq 'RFC2364') {
+# $pppsettings{'ENCAP'} = $pppsettings{'ENCAP_RFC2364'}; }
delete $pppsettings{'ENCAP_RFC1483'};
delete $pppsettings{'ENCAP_RFC2364'};
&writesecrets();
&General::log("$Lang::tr{'profile saved'} $pppsettings{'PROFILENAME'}");
- if ($drivererror) {
- my $refresh = "<META HTTP-EQUIV='refresh' CONTENT='1; URL=/cgi-bin/upload.cgi'>";
- my $title = $Lang::tr{'upload'};
- &Header::openpage($title, 0, $refresh);
- }
}
-elsif ($pppsettings{'ACTION'} eq $Lang::tr{'select'})
+if ($pppsettings{'ACTION'} eq $Lang::tr{'select'})
{
my $profile = $pppsettings{'PROFILE'};
%temppppsettings = ();
&General::writehash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",
\%pppsettings);
}
+elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
+{
+}
else
{
# read in the current vars
$selected{'TYPE'}{'modem'} = '';
$selected{'TYPE'}{'serial'} = '';
-$selected{'TYPE'}{'isdn'} = '';
$selected{'TYPE'}{'pppoe'} = '';
$selected{'TYPE'}{'pptp'} = '';
-$selected{'TYPE'}{'alcatelusb'} = '';
-$selected{'TYPE'}{'alcatelusbk'} = '';
-$selected{'TYPE'}{'pulsardsl'} = '';
-$selected{'TYPE'}{'eciadsl'} = '';
-$selected{'TYPE'}{'fritzdsl'} = '';
-$selected{'TYPE'}{'bewanadsl'} = '';
-$selected{'TYPE'}{'eagleusbadsl'} = '';
-$selected{'TYPE'}{'conexantusbadsl'} = '';
-$selected{'TYPE'}{'conexantpciadsl'} = '';
-$selected{'TYPE'}{'amedynusbadsl'} = '';
-$selected{'TYPE'}{'3cp4218usbadsl'} = '';
$selected{'TYPE'}{$pppsettings{'TYPE'}} = "selected='selected'";
-
$checked{'DEBUG'}{'off'} = '';
$checked{'DEBUG'}{'on'} = '';
$checked{'DEBUG'}{$pppsettings{'DEBUG'}} = "checked='checked'";
$selected{'COMPORT'}{'ttyS2'} = '';
$selected{'COMPORT'}{'ttyS3'} = '';
$selected{'COMPORT'}{'ttyS4'} = '';
-$selected{'COMPORT'}{'usb/ttyACM0'} = '';
-$selected{'COMPORT'}{'usb/ttyACM1'} = '';
-$selected{'COMPORT'}{'usb/ttyACM2'} = '';
-$selected{'COMPORT'}{'usb/ttyACM3'} = '';
-$selected{'COMPORT'}{'isdn1'} = '';
-$selected{'COMPORT'}{'isdn2'} = '';
+if ( $pppsettings{'TYPE'} ne '' ){
+$selected{'COMPORT'}{'ttyACM0'} = '';
+$selected{'COMPORT'}{'ttyACM1'} = '';
+$selected{'COMPORT'}{'ttyACM2'} = '';
+$selected{'COMPORT'}{'ttyACM3'} = '';}
$selected{'COMPORT'}{$pppsettings{'COMPORT'}} = "selected='selected'";
$selected{'DTERATE'}{'9600'} = '';
$selected{'DTERATE'}{'115200'} = '';
$selected{'DTERATE'}{'230400'} = '';
$selected{'DTERATE'}{'460800'} = '';
+$selected{'DTERATE'}{'921600'} = '';
$selected{'DTERATE'}{$pppsettings{'DTERATE'}} = "selected='selected'";
$checked{'SPEAKER'}{'off'} = '';
$selected{'DIALMODE'}{'P'} = '';
$selected{'DIALMODE'}{$pppsettings{'DIALMODE'}} = "selected='selected'";
-$checked{'RECONNECTION'}{'manual'} = '';
$checked{'RECONNECTION'}{'persistent'} = '';
$checked{'RECONNECTION'}{'dialondemand'} = '';
$checked{'RECONNECTION'}{$pppsettings{'RECONNECTION'}} = "checked='checked'";
$checked{'USEDOV'}{'off'} = '';
$checked{'USEDOV'}{'on'} = '';
$checked{'USEDOV'}{$pppsettings{'USEDOV'}} = "checked='checked'";
-$checked{'USEIBOD'}{'off'} = '';
-$checked{'USEIBOD'}{'on'} = '';
-$checked{'USEIBOD'}{$pppsettings{'USEIBOD'}} = "checked='checked'";
$checked{'MODEM'}{'PCIST'} = '';
$checked{'MODEM'}{'USB'} = '';
$selected{'ENCAP'}{'0'} = '';
$selected{'ENCAP'}{'1'} = '';
-$selected{'ENCAP'}{'2'} = '';
-$selected{'ENCAP'}{'3'} = '';
-$selected{'ENCAP'}{'4'} = '';
+#$selected{'ENCAP'}{'2'} = '';
+#$selected{'ENCAP'}{'3'} = '';
+#$selected{'ENCAP'}{'4'} = '';
$selected{'ENCAP'}{$pppsettings{'ENCAP'}} = "selected='selected'";
+
$checked{'METHOD'}{'STATIC'} = '';
$checked{'METHOD'}{'PPPOE'} = '';
$checked{'METHOD'}{'PPPOE_PLUGIN'} = '';
print <<END
<table width='95%' cellspacing='0'>
<tr>
- <td align='left'>$Lang::tr{'profile'}</td>
+ <td align='left'>$Lang::tr{'profile'}</td>
<td align='left'>
<select name='PROFILE' style="width: 165px">
END
<option value='serial' $selected{'TYPE'}{'serial'}>$Lang::tr{'serial'}</option>
END
;
-if ($isdnsettings{'ENABLED'} eq 'on') {
- print "\t<option value='isdn' $selected{'TYPE'}{'isdn'}>$Lang::tr{'isdn'}</option>\n";
-}
if ($netsettings{'RED_TYPE'} eq 'PPPOE') {
print "\t<option value='pppoe' $selected{'TYPE'}{'pppoe'}>PPPoE</option>\n";
}
if ($netsettings{'RED_TYPE'} eq 'PPTP') {
print "\t<option value='pptp' $selected{'TYPE'}{'pptp'}>PPTP</option>\n";
}
-if (-f "/proc/bus/usb/devices") {
+my $atmdev=`cat /proc/net/atm/devices | grep 0`;
+chomp ($atmdev);
+if ($atmdev ne '') {
print <<END
- <option value='eciadsl' $selected{'TYPE'}{'eciadsl'}>ECI USB ADSL</option>
- <option value='eagleusbadsl' $selected{'TYPE'}{'eagleusbadsl'}>Eagle USB ADSL (Acer Allied-Telesyn Comtrend D-Link Sagem USR)</option>
- <option value='conexantusbadsl' $selected{'TYPE'}{'conexantusbadsl'}>Conexant USB(Aetra Amigo Draytek Etec Mac Olitec Vitelcom Zoom)</option>
- <option value='amedynusbadsl' $selected{'TYPE'}{'amedynusbadsl'}>Zyxel 630-11 / Asus AAM6000UG USB ADSL</option>
- <option value='3cp4218usbadsl' $selected{'TYPE'}{'3cp4218usbadsl'}>3Com USB AccessRunner</option>
- <option value='alcatelusb' $selected{'TYPE'}{'alcatelusb'}>Speedtouch USB ADSL user mode driver</option>
- <option value='alcatelusbk' $selected{'TYPE'}{'alcatelusbk'}>Speedtouch USB ADSL kernel mode driver</option>
+ <option value='pppoeatm' $selected{'TYPE'}{'pppoeatm'}>PPPoE over ATM-BRIDGE</option>
END
;
}
+
+#if (0) {
+# print <<END
+# <option value='eciadsl' $selected{'TYPE'}{'eciadsl'}>ECI USB ADSL</option>
+# <option value='eagleusbadsl' $selected{'TYPE'}{'eagleusbadsl'}>Eagle USB ADSL (Acer Allied-Telesyn Comtrend D-Link Sagem USR)</option>
+# <option value='conexantusbadsl' $selected{'TYPE'}{'conexantusbadsl'}>Conexant USB(Aetra Amigo Draytek Etec Mac Olitec Vitelcom Zoom)</option>
+# <option value='amedynusbadsl' $selected{'TYPE'}{'amedynusbadsl'}>Zyxel 630-11 / Asus AAM6000UG USB ADSL</option>
+# <option value='3cp4218usbadsl' $selected{'TYPE'}{'3cp4218usbadsl'}>3Com USB AccessRunner</option>
+# <option value='alcatelusb' $selected{'TYPE'}{'alcatelusb'}>Speedtouch USB ADSL user mode driver</option>
+# <option value='alcatelusbk' $selected{'TYPE'}{'alcatelusbk'}>Speedtouch USB ADSL kernel mode driver</option>
+#END
+#;
+#}
+# print "<option value='fritzdsl' $selected{'TYPE'}{'fritzdsl'}>Fritz!DSL</option>";
+
print <<END
- <option value='fritzdsl' $selected{'TYPE'}{'fritzdsl'}>Fritz!DSL</option>
- </select></td>
- <td colspan='2' width='50%'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}'></td>
- </tr>
- <tr>
- <td colspan='2' width='50%'>USB:</td>
+ </select></td>
+ <td colspan='1' width='25%'><input type='submit' name='ACTION' value='$Lang::tr{'refresh'}'></td>
+END
+;
+ if ($pppsettings{'TYPE'} =~ /^(modem)$/) {
+ print <<END
+ <td colspan='1' width='25%'><A HREF=modem.cgi>$Lang::tr{'modem configuration'}</A></td>
END
;
-if (-f "/proc/bus/usb/devices") {
- my $usb=`lsmod | cut -d ' ' -f1 | grep -E "hci"`;
- if ($usb eq '') {
- print "\t<td colspan='2' width='50%'>$Lang::tr{'not running'}</td></tr>\n";
- } else {
- print "\t<td colspan='2' width='50%'>$usb</td></tr>\n";
- }
}
+ print "</tr>";
+
+#if (-f "/proc/bus/usb/devices") {
+# <td colspan='2' width='50%'>USB:</td>
+# my $usb=`lsmod | cut -d ' ' -f1 | grep -E "hci"`;
+# if ($usb eq '') {
+# print "\t<td colspan='2' width='50%'>$Lang::tr{'not running'}</td></tr>\n";
+# } else {
+# print "\t<td colspan='2' width='50%'>$usb</td></tr>\n";
+# }
+#}
+
if ($pppsettings{'TYPE'}) {
print "<tr><td colspan='4' width='100%'><br></br></td></tr>";
- if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/) {
+
+ if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/) {
print <<END
+
<tr>
<td colspan='3' width='75%'>$Lang::tr{'interface'}:</td>
<td width='25%'><select name='COMPORT' style="width: 165px">
<option value='ttyS2' $selected{'COMPORT'}{'ttyS2'}>$Lang::tr{'modem on com3'}</option>
<option value='ttyS3' $selected{'COMPORT'}{'ttyS3'}>$Lang::tr{'modem on com4'}</option>
<option value='ttyS4' $selected{'COMPORT'}{'ttyS4'}>$Lang::tr{'modem on com5'}</option>
- <option value='usb/ttyACM0' $selected{'COMPORT'}{'usb/ttyACM0'}>$Lang::tr{'usb modem on acm0'}</option>
- <option value='usb/ttyACM1' $selected{'COMPORT'}{'usb/ttyACM1'}>$Lang::tr{'usb modem on acm1'}</option>
- <option value='usb/ttyACM2' $selected{'COMPORT'}{'usb/ttyACM2'}>$Lang::tr{'usb modem on acm2'}</option>
- <option value='usb/ttyACM3' $selected{'COMPORT'}{'usb/ttyACM3'}>$Lang::tr{'usb modem on acm3'}</option>
- </select></td>
END
;
- } elsif ($pppsettings{'TYPE'} eq 'isdn') {
+ if ($pppsettings{'TYPE'} ne 'serial' ) {
print <<END
- <option value='isdn1' $selected{'COMPORT'}{'isdn1'}>$Lang::tr{'isdn1'}</option>
- <option value='isdn2' $selected{'COMPORT'}{'isdn2'}>$Lang::tr{'isdn2'}</option>
- </select></td>
- </tr>
+ <option value='ttyACM0' $selected{'COMPORT'}{'ttyACM0'}>$Lang::tr{'usb modem on acm0'}</option>
+ <option value='ttyACM1' $selected{'COMPORT'}{'ttyACM1'}>$Lang::tr{'usb modem on acm1'}</option>
+ <option value='ttyACM2' $selected{'COMPORT'}{'ttyACM2'}>$Lang::tr{'usb modem on acm2'}</option>
+ <option value='ttyACM3' $selected{'COMPORT'}{'ttyACM3'}>$Lang::tr{'usb modem on acm3'}</option>
END
;
}
+ print "</select></td> "}
if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ ) {
print <<END
<tr>
<option value='115200' $selected{'DTERATE'}{'115200'}>115200</option>
<option value='230400' $selected{'DTERATE'}{'230400'}>230400</option>
<option value='460800' $selected{'DTERATE'}{'460800'}>460800</option>
+ <option value='921600' $selected{'DTERATE'}{'921600'}>921600</option>
</select></td>
</tr>
END
;
}
- if ($pppsettings{'TYPE'} =~ /^(modem|isdn)$/ ) {
+ if ($pppsettings{'TYPE'} =~ /^(modem)$/ ) {
print "<tr><td colspan='3' width='75%'>$Lang::tr{'number'}</td>\n";
print "<td width='25%'><input type='text' name='TELEPHONE' value='$pppsettings{'TELEPHONE'}'></td><tr>\n";
if ($pppsettings{'TYPE'} eq 'modem' ) {
<td colspan='3' width='75%'>$Lang::tr{'idle timeout'}</td>
<td width='25%'><input type='text' name='TIMEOUT' value='$pppsettings{'TIMEOUT'}' /></td>
</tr>
-END
-;
- if ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && ( $netsettings{'RED_TYPE'} eq "DHCP" || $netsettings{'RED_TYPE'} eq "STATIC") ) {
- $pppsettings{'AUTOCONNECT'} = 'on';
- print "<tr><td colspan='3' width='75%'>$Lang::tr{'connect on ipfire restart'}</td>\n";
- print "<td width='25%'><input type='checkbox' disabled='disabled' name='AUTOCONNECT' value='on' $checked{'AUTOCONNECT'}{'on'}></td>\n";
- } else {
- print "<tr><td colspan='3' width='75%'>$Lang::tr{'connect on ipfire restart'}</td>\n";
- print "<td width='25%'><input type='checkbox' name='AUTOCONNECT' value='on' $checked{'AUTOCONNECT'}{'on'}></td>\n";
- }
-print <<END
- </tr>
<tr>
<td colspan='3' width='75%'>$Lang::tr{'connection debugging'}:</td>
<td width='25%'><input type='checkbox' name='DEBUG' $checked{'DEBUG'}{'on'} /></td>
<tr>
<td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'reconnection'}:</b></td>
</tr>
-<tr>
- <td colspan='4' width='100%'><input type='radio' name='RECONNECTION' value='manual' $checked{'RECONNECTION'}{'manual'}>$Lang::tr{'manual'}</td>
-</tr>
<tr>
<td colspan='4' width='100%'><input type='radio' name='RECONNECTION' value='dialondemand' $checked{'RECONNECTION'}{'dialondemand'}>$Lang::tr{'dod'}</td>
</tr>
END
;
-if ($pppsettings{'TYPE'} eq 'isdn') {
- print <<END
-<tr><td colspan='4' width='100%'><br></br></td></tr>
-<tr>
- <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'isdn settings'}</b></td>
-</tr>
-<tr>
- <td colspan='3' width='75%'>$Lang::tr{'use ibod'}</td>
- <td width='25%'><input type='checkbox' name='USEIBOD' $checked{'USEIBOD'}{'on'} /></td>
-</tr>
-<tr>
- <td colspan='3' width='75%'>$Lang::tr{'use dov'}</td>
- <td width='25%'><input type='checkbox' name='USEDOV' $checked{'USEDOV'}{'on'} /></td>
-</tr>
-END
-;
-}
-
if ($pppsettings{'TYPE'} eq 'pptp')
{
print <<END
END
;
}
-if ($pppsettings{'TYPE'} eq 'pppoe')
+if ($pppsettings{'TYPE'} =~ /^(pppoeatm)$/)
{
+
print <<END
-<tr><td colspan='4' width='100%'><br></br></td></tr>
-<tr>
- <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'pppoe settings'}</b></td>
-</tr>
-<tr>
- <td width='25%'><input type='radio' name='METHOD' value='PPPOE_PLUGIN' $checked{'METHOD'}{'PPPOE_PLUGIN'} />PPPoE plugin</td>
- <td colspan='2' width='50%'>$Lang::tr{'service name'} <img src='/blob.gif' alt='*' /></td>
- <td width='25%'><input type='text' name='SERVICENAME' value='$pppsettings{'SERVICENAME'}' /></td>
-</tr>
+</table>
+<table width='100%'>
<tr>
- <td width='25%'><input type='radio' name='METHOD' value='PPPOE' $checked{'METHOD'}{'PPPOE'} />$Lang::tr{'pppoe'}</td>
- <td colspan='2' width='50%'>$Lang::tr{'concentrator name'} <img src='/blob.gif' alt='*' /></td>
- <td width='25%'><input type='text' name='CONCENTRATORNAME' value='$pppsettings{'CONCENTRATORNAME'}' /></td>
+ <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'adsl settings'}:</b></td>
</tr>
<tr>
- <td width='25%'>MRU</td>
- <td colspan='2' width='50%'></td>
- <td width='25%'><input type='text' name='MRU' value='$pppsettings{'MRU'}' /></td>
+
+ <td> $Lang::tr{'encapsulation'}:</td>
+ <td colspan='2' width='30%'>
+ <select name='ENCAP'>
+ <option value='0' $selected{'ENCAP'}{'0'}>LLC</option>
+ <option value='1' $selected{'ENCAP'}{'1'}>VCmux</option>
+ </select>
+ </td>
</tr>
<tr>
- <td width='25%'>MTU</td>
- <td colspan='2' width='50%'></td>
- <td width='25%'><input type='text' name='MTU' value='$pppsettings{'MTU'}' /></td>
+
+ <td nowrap='nowrap'>$Lang::tr{'vpi number'}</td>
+ <td><input type='text' size='5' name='VPI' value='$pppsettings{'VPI'}' /></td>
+ <td align='right'>$Lang::tr{'vci number'}</td>
+ <td colspan='2'><input type='text' size='5' name='VCI' value='$pppsettings{'VCI'}' /></td>
</tr>
END
;
-}
+}
-if ($pppsettings{'TYPE'} eq 'fritzdsl')
+
+if ($pppsettings{'TYPE'} eq 'pppoe' || $pppsettings{'TYPE'} eq 'pppoeatm')
{
print <<END
<tr><td colspan='4' width='100%'><br></br></td></tr>
<tr>
- <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'adsl settings'}:</b></td>
-</tr>
-<tr>
- <td colspan='2' width='50%'>$Lang::tr{'vpi number'}</td>
- <td colspan='2' width='50%'><input type='text' name='VPI' value='$pppsettings{'VPI'}' /></td>
+ <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'pppoe settings'}</b></td>
</tr>
<tr>
- <td colspan='2' width='50%'>$Lang::tr{'vci number'}</td>
- <td colspan='2' width='50%'><input type='text' name='VCI' value='$pppsettings{'VCI'}' /></td>
+ <td width='25%'><input type='radio' name='METHOD' value='PPPOE_PLUGIN' $checked{'METHOD'}{'PPPOE_PLUGIN'} />PPPoE plugin</td>
+ <td colspan='2' width='50%'>$Lang::tr{'service name'} <img src='/blob.gif' alt='*' /></td>
+ <td width='25%'><input type='text' name='SERVICENAME' value='$pppsettings{'SERVICENAME'}' /></td>
</tr>
<tr>
- <td colspan='2' width='50%'>$Lang::tr{'protocol'}:</td>
- <td colspan='2' width='50%'><input type='radio' name='PROTOCOL' value='RFC2364' $checked{'PROTOCOL'}{'RFC2364'} />RFC2364 PPPoA</td>
- </tr>
- <td colspan='2' width='50%'></td>
- <td colspan='2' width='50%'><input type='radio' name='PROTOCOL' value='RFC1483' $checked{'PROTOCOL'}{'RFC1483'} />RFC 1483 / 2684</td>
- </tr>
- <tr>
- <td colspan='2' width='50%'>$Lang::tr{'encapsulation'}:</td>
- <td colspan='2' width='50%'>
- <select name='ENCAP_RFC2364' style="width: 165px">
- <option value='0' $selected{'ENCAP'}{'0'}>VCmux</option>
- <option value='1' $selected{'ENCAP'}{'1'}>LLC</option>
- </select>
- </td>
+ <td width='25%'><input type='radio' name='METHOD' value='PPPOE' $checked{'METHOD'}{'PPPOE'} />$Lang::tr{'pppoe'}</td>
+ <td colspan='2' width='50%'>$Lang::tr{'concentrator name'} <img src='/blob.gif' alt='*' /></td>
+ <td width='25%'><input type='text' name='CONCENTRATORNAME' value='$pppsettings{'CONCENTRATORNAME'}' /></td>
</tr>
<tr>
- <td colspan='2' width='50%'>$Lang::tr{'encapsulation'}:</td>
- <td colspan='2' width='50%'>
- <select name='ENCAP_RFC1483' style="width: 165px">
- <option value='0' $selected{'ENCAP'}{'0'}>BRIDGED_ETH_LLC</option>
- <option value='1' $selected{'ENCAP'}{'1'}>BRIDGED_ETH_VC</option>
- <option value='2' $selected{'ENCAP'}{'2'}>ROUTED_IP_LLC</option>
- <option value='3' $selected{'ENCAP'}{'3'}>ROUTED_IP_VC</option>
- </select>
- </td>
+ <td width='25%'>MTU</td>
+ <td colspan='2' width='50%'></td>
+ <td width='25%'><input type='text' name='MTU' value='$pppsettings{'MTU'}' /></td>
</tr>
END
;
- print "<tr><td colspan='2' width='50%'>$Lang::tr{'driver'}:</td>";
- if (-e "/lib/modules/$kernel/misc/fcdslusb.o.gz") {
- print "<td colspan='2' width='50%'>$Lang::tr{'present'}</td></tr>";
- } else {
- print "<td colspan='2' width='50%'>$Lang::tr{'not present'}</td></tr>"; }
}
print <<END
link("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",
"${General::swroot}/ppp/settings");
system ("/usr/bin/touch", "${General::swroot}/ppp/updatesettings");
- if ($pppsettings{'TYPE'} eq 'eagleusbadsl') {
- # eagle-usb.conf is in backup but link DSPcode.bin can't, so the link is created in rc.eagleusbadsl
- open(FILE, ">/${General::swroot}/eagle-usb/eagle-usb.conf") or die "Unable to write eagle-usb.conf file";
- flock(FILE, 2);
- # decimal to hexa
- $modemsettings{'VPI'} = uc(sprintf('%X', $pppsettings{'VPI'}));
- $modemsettings{'VCI'} = uc(sprintf('%X', $pppsettings{'VCI'}));
- if( $pppsettings{'PROTOCOL'} eq 'RFC1483') {
- $modemsettings{'Encapsulation'} =1+$pppsettings{'ENCAP'}
- } elsif ( $pppsettings{'PROTOCOL'} eq 'RFC2364') {
- $modemsettings{'Encapsulation'} =6-$pppsettings{'ENCAP'}
- }
- print FILE "<eaglectrl>\n";
- print FILE "VPI=$modemsettings{'VPI'}\n";
- print FILE "VCI=$modemsettings{'VCI'}\n";
- print FILE "Encapsulation=$modemsettings{'Encapsulation'}\n";
- print FILE "Linetype=0A\n";
- print FILE "RatePollFreq=00000009\n";
- print FILE "</eaglectrl>\n";
- close FILE;
- }
}
sub writesecrets
$pppsettings{'COMPORT'} = 'ttyS0';
$pppsettings{'DTERATE'} = 115200;
$pppsettings{'SPEAKER'} = 'off';
- $pppsettings{'RECONNECTION'} = 'manual';
+ $pppsettings{'RECONNECTION'} = 'persistent';
$pppsettings{'DIALONDEMANDDNS'} = 'off';
- $pppsettings{'AUTOCONNECT'} = 'off';
+ $pppsettings{'AUTOCONNECT'} = 'on';
$pppsettings{'SENDCR'} = 'off';
$pppsettings{'USEIBOD'} = 'off';
$pppsettings{'USEDOV'} = 'off';
$pppsettings{'MODEM'} = 'PCIST';
$pppsettings{'LINE'} = 'WO';
$pppsettings{'ENCAP'} = '0';
+ $pppsettings{'VPI'} = '1';
+ $pppsettings{'VCI'} = '32';
$pppsettings{'PHONEBOOK'} = 'RELAY_PPP1';
$pppsettings{'PROTOCOL'} = 'RFC2364';
$pppsettings{'METHOD'} = 'PPPOE_PLUGIN';
- $pppsettings{'MTU'} = '1492';
- $pppsettings{'MRU'} = '1492';
+ if ( $pppsettings{'METHOD'} eq 'PPPOE_PLUGIN' ) {
+ $pppsettings{'MTU'} = '1492';
+ $pppsettings{'MRU'} = '1492';
+ } else {
+ $pppsettings{'MTU'} = '1452';
+ $pppsettings{'MRU'} = '1452';
+ }
$pppsettings{'DIALMODE'} = 'T';
$pppsettings{'MAXRETRIES'} = 5;
$pppsettings{'HOLDOFF'} = 30;
$pppsettings{'DNS'} = 'Automatic';
$pppsettings{'DEBUG'} = 'off';
$pppsettings{'BACKUPPROFILE'} = $pppsettings{'PROFILE'};
-
- # Get ISDN settings so we can see if ISDN is enabled or not.
- $isdnsettings{'ENABLED'} = 'off';
- &General::readhash("${General::swroot}/isdn/settings", \%isdnsettings);
# Get PPPoE settings so we can see if PPPoE is enabled or not.
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
# empty profile partial pre-initialization
- if ($netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/) {
+ if ($netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/) {
$pppsettings{'TYPE'}=lc($netsettings{'RED_TYPE'});
- } elsif ($isdnsettings{'ENABLED'} eq 'on') {
- $pppsettings{'TYPE'}='isdn';
} else {
$pppsettings{'TYPE'}='modem';
}