]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/pppsetup.cgi
Der Grub lies sich auf einigen RAID-Controllern nicht installieren...
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / pppsetup.cgi
index 0a3ce09ab597552a65583ea4c05313b6fd06194b..51e2f68cf168c2b56208e9d975ee43be263b6bfb 100644 (file)
@@ -1,11 +1,23 @@
 #!/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;
 
@@ -51,7 +63,7 @@ if ($pppsettings{'ACTION'} ne '' &&
 }
 elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
 {
-       unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp)$/) {
+       unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|pppoeatm)$/) {
                $errormessage = $Lang::tr{'invalid input'};
                goto ERROR; }
        my $type = $pppsettings{'TYPE'};
@@ -63,7 +75,7 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
        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)$/) {
@@ -143,7 +155,21 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
                }
                if ($errormessage ne '') {goto ERROR; }
        }
-
+       if ($pppsettings{'TYPE'} =~ /^(pppoeatm)$/) {
+               if ( ($pppsettings{'VPI'} eq '') || ($pppsettings{'VCI'} eq '') ) {
+                       $errormessage = $Lang::tr{'invalid vpi vpci'};
+                       goto ERROR; }
+               if ( (!($pppsettings{'VPI'} =~ /^\d+$/)) || (!($pppsettings{'VCI'} =~ /^\d+$/)) ) {
+                       $errormessage = $Lang::tr{'invalid vpi vpci'};
+                       goto ERROR; }
+               if (($pppsettings{'VPI'} eq '0') && ($pppsettings{'VCI'} eq '0')) {
+                       $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'};
@@ -182,10 +208,10 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
                $errormessage = $Lang::tr{'dod not compatible with ddns'};
                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'};
 
@@ -204,13 +230,8 @@ ERROR:
        &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 = ();
@@ -255,6 +276,9 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'delete'})
        &General::writehash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",
                \%pppsettings);
 }
+elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'})
+{
+}
 else
 {
        # read in the current vars
@@ -292,7 +316,6 @@ $selected{'TYPE'}{'serial'} = '';
 $selected{'TYPE'}{'pppoe'} = '';
 $selected{'TYPE'}{'pptp'} = '';
 $selected{'TYPE'}{$pppsettings{'TYPE'}} = "selected='selected'";
-
 $checked{'DEBUG'}{'off'} = '';
 $checked{'DEBUG'}{'on'} = '';
 $checked{'DEBUG'}{$pppsettings{'DEBUG'}} = "checked='checked'";
@@ -302,12 +325,11 @@ $selected{'COMPORT'}{'ttyS1'} = '';
 $selected{'COMPORT'}{'ttyS2'} = '';
 $selected{'COMPORT'}{'ttyS3'} = '';
 $selected{'COMPORT'}{'ttyS4'} = '';
+if ( $pppsettings{'TYPE'} ne '' ){
 $selected{'COMPORT'}{'ttyACM0'} = '';
 $selected{'COMPORT'}{'ttyACM1'} = '';
 $selected{'COMPORT'}{'ttyACM2'} = '';
-$selected{'COMPORT'}{'ttyACM3'} = '';
-$selected{'COMPORT'}{'isdn1'} = '';
-$selected{'COMPORT'}{'isdn2'} = '';
+$selected{'COMPORT'}{'ttyACM3'} = '';}
 $selected{'COMPORT'}{$pppsettings{'COMPORT'}} = "selected='selected'";
 
 $selected{'DTERATE'}{'9600'} = '';
@@ -317,6 +339,7 @@ $selected{'DTERATE'}{'57600'} = '';
 $selected{'DTERATE'}{'115200'} = '';
 $selected{'DTERATE'}{'230400'} = '';
 $selected{'DTERATE'}{'460800'} = '';
+$selected{'DTERATE'}{'921600'} = '';
 $selected{'DTERATE'}{$pppsettings{'DTERATE'}} = "selected='selected'";
 
 $checked{'SPEAKER'}{'off'} = '';
@@ -327,7 +350,6 @@ $selected{'DIALMODE'}{'T'} = '';
 $selected{'DIALMODE'}{'P'} = '';
 $selected{'DIALMODE'}{$pppsettings{'DIALMODE'}} = "selected='selected'";
 
-$checked{'RECONNECTION'}{'manual'} = '';
 $checked{'RECONNECTION'}{'persistent'} = '';
 $checked{'RECONNECTION'}{'dialondemand'} = '';
 $checked{'RECONNECTION'}{$pppsettings{'RECONNECTION'}} = "checked='checked'";
@@ -346,9 +368,6 @@ $checked{'SENDCR'}{$pppsettings{'SENDCR'}} = "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'} = '';
@@ -375,10 +394,11 @@ $checked{'PROTOCOL'}{$pppsettings{'PROTOCOL'}} = "checked='checked'";
 
 $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'} = '';
@@ -416,7 +436,7 @@ print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
 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
@@ -456,41 +476,59 @@ if ($netsettings{'RED_TYPE'} eq 'PPPOE') {
 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
-  </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)$/) {
                print <<END
+
 <tr>
        <td colspan='3' width='75%'>$Lang::tr{'interface'}:</td>
        <td width='25%'><select name='COMPORT' style="width: 165px">
@@ -503,14 +541,18 @@ END
                <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>
+END
+;
+               if ($pppsettings{'TYPE'} ne 'serial' ) {
+                       print <<END
                <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>
-       </select></td>
 END
 ;
                }
+    print "</select></td>      "}
                if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ ) {
                        print <<END
   <tr>
@@ -523,6 +565,7 @@ END
                <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
@@ -559,18 +602,6 @@ print <<END
        <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>
@@ -580,9 +611,6 @@ print <<END
 <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>
@@ -648,7 +676,38 @@ print <<END
 END
 ;
 }
-if ($pppsettings{'TYPE'} eq 'pppoe')
+if ($pppsettings{'TYPE'} =~ /^(pppoeatm)$/)
+{
+
+print <<END
+</table>
+<table width='100%'>
+<tr>
+       <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'adsl settings'}:</b></td>
+</tr>
+<tr>
+
+       <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 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 'pppoe' || $pppsettings{'TYPE'} eq 'pppoeatm')
 {
 print <<END
 <tr><td colspan='4' width='100%'><br></br></td></tr>
@@ -774,15 +833,17 @@ sub initprofile
        $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';
@@ -807,7 +868,7 @@ sub initprofile
        &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'});
        } else {
                $pppsettings{'TYPE'}='modem';