X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fpppsetup.cgi;h=4b45ee50c18d3153a7ea87fb5193b2b1c686d38c;hb=87ea30ff5669c0174af3a481f31aba9f868101c6;hp=d3a59e2ab0abd35658711061eb1c4e7b9505d8b9;hpb=ac6dd0a7afd5f5bf9f88cca388a330425f796a74;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi index d3a59e2ab0..4b45ee50c1 100644 --- a/html/cgi-bin/pppsetup.cgi +++ b/html/cgi-bin/pppsetup.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2014 IPFire Team # # # # 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 # @@ -53,17 +53,15 @@ $pppsettings{'ACTION'} = ''; &Header::getcgihash(\%pppsettings); if ($pppsettings{'ACTION'} ne '' && - (-e '/var/run/ppp-ipcop.pid' || -e "${General::swroot}/red/active")) -{ + ( -e "${General::swroot}/red/active")){ $errormessage = $Lang::tr{'unable to alter profiles while red is active'}; # read in the current vars %pppsettings = (); $pppsettings{'VALID'} = ''; - &General::readhash("${General::swroot}/ppp/settings", \%pppsettings); -} + &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);} elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'}) { - unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|pppoeatm)$/) { + unless ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn|pppoe|pptp|vdsl|pppoeatm|pptpatm)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ERROR; } my $type = $pppsettings{'TYPE'}; @@ -72,7 +70,10 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'refresh'}) } elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) { - if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM0|ttyACM1|ttyACM2|ttyACM3|ttyUSB0|ttyUSB1|ttyUSB2|ttyUSB3|isdn1|isdn2)$/) { + if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1|isdn1|isdn2)$/) { + $errormessage = $Lang::tr{'invalid input'}; + goto ERROR; } + if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'MONPORT'} !~ /^(|ttyACM[0-9]|ttyUSB[0-9]|rfcomm0|rfcomm1)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ERROR; } if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'DTERATE'} !~ /^(9600|19200|38400|57600|115200|230400|460800|921600)$/) { @@ -92,7 +93,7 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) goto ERROR; } if ($pppsettings{'TYPE'} =~ /^(modem|isdn)$/) { if ($pppsettings{'TELEPHONE'} eq '') { - $errormessage = $Lang::tr{'telephone not set'}; + $errormessage = $Lang::tr{'telephone not set'}; goto ERROR; } if (!($pppsettings{'TELEPHONE'} =~ /^[\d\*\#\,]+$/)) { $errormessage = $Lang::tr{'bad characters in the telephone number field'}; @@ -100,12 +101,9 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) } unless (($pppsettings{'PROTOCOL'} eq 'RFC1483' && $pppsettings{'METHOD'} =~ /^(STATIC|DHCP)$/)) { if ($pppsettings{'USERNAME'} eq '') { - $errormessage = $Lang::tr{'username not set'}; - goto ERROR; } - if ($pppsettings{'PASSWORD'} eq '') { - $errormessage = $Lang::tr{'password not set'}; + $errormessage = $Lang::tr{'username not set'}; goto ERROR; } - } + } if ($pppsettings{'TIMEOUT'} eq '') { $errormessage = $Lang::tr{'idle timeout not set'}; @@ -115,7 +113,7 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) goto ERROR; } if ($pppsettings{'LOGINSCRIPT'} =~ /[.\/ ]/ ) { - $errormessage = $Lang::tr{'bad characters in script field'}; + $errormessage = $Lang::tr{'bad characters in script field'}; goto ERROR; } if ($pppsettings{'DNS1'}) @@ -142,20 +140,7 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) $errormessage = $Lang::tr{'only digits allowed in holdoff field'}; goto ERROR; } - if ($pppsettings{'TYPE'} eq 'pptp') { - $errormessage = ''; - if ($pppsettings{'METHOD'} eq 'STATIC') { - if (! &General::validip($pppsettings{'ROUTERIP'})) { - $errormessage = $Lang::tr{'router ip'}.' '.$Lang::tr{'invalid ip'}; - } - } else { - if (($pppsettings{'DHCP_HOSTNAME'} ne '') && (! &General::validfqdn($pppsettings{'DHCP_HOSTNAME'})) ) { - $errormessage = $errormessage.' '.$Lang::tr{'hostname'}.' '.$Lang::tr{'invalid hostname'}; - } - } - if ($errormessage ne '') {goto ERROR; } - } - if ($pppsettings{'TYPE'} =~ /^(pppoeatm)$/) { + if ($pppsettings{'TYPE'} =~ /^(pppoeatm|pptpatm)$/) { if ( ($pppsettings{'VPI'} eq '') || ($pppsettings{'VCI'} eq '') ) { $errormessage = $Lang::tr{'invalid vpi vpci'}; goto ERROR; } @@ -165,11 +150,14 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) if (($pppsettings{'VPI'} eq '0') && ($pppsettings{'VCI'} eq '0')) { $errormessage = $Lang::tr{'invalid vpi vpci'}; goto ERROR; } + if ($pppsettings{'ATM_DEV'} eq '') { + $errormessage = $Lang::tr{'invalid input'}; + 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'}; @@ -215,6 +203,16 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) delete $pppsettings{'ENCAP_RFC1483'}; delete $pppsettings{'ENCAP_RFC2364'}; + if ((!($pppsettings{'INET_VLAN'} =~ /^\d+$/)) || + ($pppsettings{'INET_VLAN'} eq '') || + ($pppsettings{'INET_VLAN'} > 4095) ) { + $errormessage = 'INET_VLAN - '.$Lang::tr{'invalid input'}; } + + if ((!($pppsettings{'IPTV_VLAN'} =~ /^\d+$/)) || + ($pppsettings{'IPTV_VLAN'} eq '') || + ($pppsettings{'IPTV_VLAN'} > 4095) ) { + $errormessage = 'IPTV_VLAN - '.$Lang::tr{'invalid input'}; } + ERROR: if ($errormessage) { $pppsettings{'VALID'} = 'no'; } @@ -240,7 +238,7 @@ if ($pppsettings{'ACTION'} eq $Lang::tr{'select'}) \%temppppsettings); # make link. - &updatesettings(); + &updatesettings(); # read in the new params "early" so we can write secrets. %pppsettings = (); @@ -251,7 +249,7 @@ if ($pppsettings{'ACTION'} eq $Lang::tr{'select'}) &writesecrets(); - &General::log("$Lang::tr{'profile made current'} $pppsettings{'PROFILENAME'}"); + &General::log("$Lang::tr{'profile made current'} $pppsettings{'PROFILENAME'}"); } elsif ($pppsettings{'ACTION'} eq $Lang::tr{'delete'}) { @@ -259,14 +257,14 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'delete'}) my $profile = $pppsettings{'PROFILE'}; truncate ("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}", 0); - + %temppppsettings = (); $temppppsettings{'PROFILE'} = ''; &General::readhash("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}", \%temppppsettings); # make link. - &updatesettings(); + &updatesettings(); # read in the new params "early" so we can write secrets. %pppsettings = (); @@ -315,6 +313,9 @@ $selected{'TYPE'}{'modem'} = ''; $selected{'TYPE'}{'serial'} = ''; $selected{'TYPE'}{'pppoe'} = ''; $selected{'TYPE'}{'pptp'} = ''; +$selected{'TYPE'}{'vdsl'} = ''; +$selected{'TYPE'}{'pppoeatm'} = ''; +$selected{'TYPE'}{'pptpatm'} = ''; $selected{'TYPE'}{$pppsettings{'TYPE'}} = "selected='selected'"; $checked{'DEBUG'}{'off'} = ''; $checked{'DEBUG'}{'on'} = ''; @@ -329,12 +330,51 @@ $selected{'COMPORT'}{'ttyACM0'} = ''; $selected{'COMPORT'}{'ttyACM1'} = ''; $selected{'COMPORT'}{'ttyACM2'} = ''; $selected{'COMPORT'}{'ttyACM3'} = ''; +$selected{'COMPORT'}{'ttyACM4'} = ''; +$selected{'COMPORT'}{'ttyACM5'} = ''; +$selected{'COMPORT'}{'ttyACM6'} = ''; +$selected{'COMPORT'}{'ttyACM7'} = ''; +$selected{'COMPORT'}{'ttyACM8'} = ''; +$selected{'COMPORT'}{'ttyACM9'} = ''; $selected{'COMPORT'}{'ttyUSB0'} = ''; $selected{'COMPORT'}{'ttyUSB1'} = ''; $selected{'COMPORT'}{'ttyUSB2'} = ''; $selected{'COMPORT'}{'ttyUSB3'} = ''; +$selected{'COMPORT'}{'ttyUSB4'} = ''; +$selected{'COMPORT'}{'ttyUSB5'} = ''; +$selected{'COMPORT'}{'ttyUSB6'} = ''; +$selected{'COMPORT'}{'ttyUSB7'} = ''; +$selected{'COMPORT'}{'ttyUSB8'} = ''; +$selected{'COMPORT'}{'ttyUSB9'} = ''; +$selected{'COMPORT'}{'rfcomm0'} = ''; +$selected{'COMPORT'}{'rfcomm1'} = ''; $selected{'COMPORT'}{$pppsettings{'COMPORT'}} = "selected='selected'"; +$selected{'MONPORT'}{''} = ''; +$selected{'MONPORT'}{'ttyACM0'} = ''; +$selected{'MONPORT'}{'ttyACM1'} = ''; +$selected{'MONPORT'}{'ttyACM2'} = ''; +$selected{'MONPORT'}{'ttyACM3'} = ''; +$selected{'MONPORT'}{'ttyACM4'} = ''; +$selected{'MONPORT'}{'ttyACM5'} = ''; +$selected{'MONPORT'}{'ttyACM6'} = ''; +$selected{'MONPORT'}{'ttyACM7'} = ''; +$selected{'MONPORT'}{'ttyACM8'} = ''; +$selected{'MONPORT'}{'ttyACM9'} = ''; +$selected{'MONPORT'}{'ttyUSB0'} = ''; +$selected{'MONPORT'}{'ttyUSB1'} = ''; +$selected{'MONPORT'}{'ttyUSB2'} = ''; +$selected{'MONPORT'}{'ttyUSB3'} = ''; +$selected{'MONPORT'}{'ttyUSB4'} = ''; +$selected{'MONPORT'}{'ttyUSB5'} = ''; +$selected{'MONPORT'}{'ttyUSB6'} = ''; +$selected{'MONPORT'}{'ttyUSB7'} = ''; +$selected{'MONPORT'}{'ttyUSB8'} = ''; +$selected{'MONPORT'}{'ttyUSB9'} = ''; +$selected{'MONPORT'}{'rfcomm0'} = ''; +$selected{'MONPORT'}{'rfcomm1'} = ''; +$selected{'MONPORT'}{$pppsettings{'MONPORT'}} = "selected='selected'"; + $selected{'DTERATE'}{'9600'} = ''; $selected{'DTERATE'}{'19200'} = ''; $selected{'DTERATE'}{'38400'} = ''; @@ -362,7 +402,7 @@ $checked{'DIALONDEMANDDNS'}{'on'} = ''; $checked{'DIALONDEMANDDNS'}{$pppsettings{'DIALONDEMANDDNS'}} = "checked='checked'"; $checked{'AUTOCONNECT'}{'off'} = ''; -$checked{'AUTOCONNECT'}{'on'} = ''; +$checked{'AUTOCONNECT'}{'on'} = ''; $checked{'AUTOCONNECT'}{$pppsettings{'AUTOCONNECT'}} = "checked='checked'"; $checked{'SENDCR'}{'off'} = ''; @@ -404,7 +444,6 @@ $selected{'ENCAP'}{$pppsettings{'ENCAP'}} = "selected='selected'"; $checked{'METHOD'}{'STATIC'} = ''; $checked{'METHOD'}{'PPPOE'} = ''; -$checked{'METHOD'}{'PPPOE_PLUGIN'} = ''; $checked{'METHOD'}{'DHCP'} = ''; $checked{'METHOD'}{$pppsettings{'METHOD'}} = "checked='checked'"; @@ -420,25 +459,32 @@ $checked{'DNS'}{'Automatic'} = ''; $checked{'DNS'}{'Manual'} = ''; $checked{'DNS'}{$pppsettings{'DNS'}} = "checked='checked'"; +$checked{'IPTV'}{'enable'} = ''; +$checked{'IPTV'}{'disable'} = ''; +$checked{'IPTV'}{$pppsettings{'IPTV'}} = "checked='checked'"; + +if ($pppsettings{'INET_VLAN'} eq '') { $pppsettings{'INET_VLAN'}='7'; } +if ($pppsettings{'IPTV_VLAN'} eq '') { $pppsettings{'IPTV_VLAN'}='8'; } + &Header::openpage($Lang::tr{'ppp setup'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); if ($netsettings{'RED_TYPE'} ne 'PPPOE') { $errormessage = $Lang::tr{'dialup red not ppp'}; &Header::openbox('100%', 'center', $Lang::tr{'error messages'}); - print "$errormessage\n"; - print " \n"; + print "$errormessage\n"; + print " \n"; &Header::closebox(); &Header::closebigbox(); &Header::closepage(); exit(1); } - + if ($errormessage) { &Header::openbox('100%', 'center', $Lang::tr{'error messages'}); - print "$errormessage\n"; - print " \n"; + print "$errormessage\n"; + print " \n"; &Header::closebox(); } @@ -483,27 +529,26 @@ print < END ; -if ($netsettings{'RED_TYPE'} eq 'PPPOE') { +if ($netsettings{'RED_TYPE'} eq 'PPPOE' ) { print <$Lang::tr{'modem'} - - + + + + + END ; -my $atmdev=`cat /proc/net/atm/devices | grep 0`; +my $atmdev=`cat /proc/net/atm/devices 2>/dev/null | grep 0`; chomp ($atmdev); if ($atmdev ne '') { print <PPPoE over ATM-BRIDGE + END ; } } -#if ($netsettings{'RED_TYPE'} eq 'PPTP') {# -# print "\t\n"; -#} -# #if (0) { # print <ECI USB ADSL @@ -525,7 +570,7 @@ END ; if ($pppsettings{'TYPE'} =~ /^(modem)$/) { print <$Lang::tr{'modem configuration'} + $Lang::tr{'modem configuration'} END ; } @@ -564,18 +609,68 @@ END + + + + + + + + END ; if ($pppsettings{'TYPE'} ne 'serial' ) { print <$Lang::tr{'usb modem on acm0'} - - - + + + + + + + + + + END ; } print " "} + + if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/) { + print < + $Lang::tr{'monitor interface'}: + + + + +END + } + if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ ) { print < @@ -593,14 +688,14 @@ END END ; - } + } if ($pppsettings{'TYPE'} =~ /^(modem)$/ ) { - print "$Lang::tr{'number'}\n"; + print "$Lang::tr{'number'} *\n"; print "\n"; if ($pppsettings{'TYPE'} eq 'modem' ) { print "$Lang::tr{'modem speaker on'}\n"; print "\n"; - } + } } } if ($pppsettings{'TYPE'} eq 'modem') { @@ -612,17 +707,29 @@ END + + $Lang::tr{'optional at cmd'} 1 + + + + $Lang::tr{'optional at cmd'} 2 + + + + $Lang::tr{'optional at cmd'} 3 + + $Lang::tr{'send cr'} END -; +; } print < - $Lang::tr{'idle timeout'} + $Lang::tr{'idle timeout'} * @@ -664,11 +771,11 @@ print < - $Lang::tr{'holdoff'}: + $Lang::tr{'holdoff'}: * - $Lang::tr{'maximum retries'} + $Lang::tr{'maximum retries'} * END @@ -676,39 +783,40 @@ END if ($pppsettings{'TYPE'} eq 'pptp') { + print <

$Lang::tr{'pptp settings'} - $Lang::tr{'phonebook entry'} - - + $Lang::tr{'pptp peer'}: * + - $Lang::tr{'static ip'} - $Lang::tr{'router ip'} - + $Lang::tr{'pptp netconfig'}: * + - $Lang::tr{'dhcp mode'} - $Lang::tr{'hostname'}: * - + $Lang::tr{'pptp route'}: + + END ; } -if ($pppsettings{'TYPE'} =~ /^(pppoeatm)$/) + +if ($pppsettings{'TYPE'} =~ /^(pppoeatm|pptpatm)$/) { print < - $Lang::tr{'adsl settings'}: + $Lang::tr{'atm settings'}: - + $Lang::tr{'atm device'} + $Lang::tr{'encapsulation'}: - + - $Lang::tr{'vci number'} - + $Lang::tr{'vci number'} + END ; -} +} + if ($pppsettings{'TYPE'} =~ /^(pppoe|vdsl|pppoeatm)$/) { +print < + IPTV/VLAN: + +END +; + if ( -e '/opt/pakfire/db/installed/meta-igmpproxy'){ +print < + $Lang::tr{'on'} + + + + $Lang::tr{'off'} + + + INET_VLAN + + IPTV_VLAN + + + +END +; + } + else { + print "No IPTV possible install addon igmpproxy"; + if ($pppsettings{'TYPE'} eq 'vdsl') { +print < + INET_VLAN + + +END +; + } + } +} -if ($pppsettings{'TYPE'} eq 'pppoe' || $pppsettings{'TYPE'} eq 'pppoeatm') +if ($pppsettings{'TYPE'} eq 'pppoe' || $pppsettings{'TYPE'} eq 'pppoeatm' || $pppsettings{'TYPE'} eq 'vdsl') { print <

@@ -735,23 +886,35 @@ print <$Lang::tr{'pppoe settings'} - PPPoE plugin - $Lang::tr{'service name'} * + $Lang::tr{'service name'} + - $Lang::tr{'pppoe'} - $Lang::tr{'concentrator name'} * + $Lang::tr{'concentrator name'} + +END +; +} + +print <

- MTU - + MTU/MRU + + + + MTU: + + MRU: + + END ; -} print <

@@ -759,9 +922,9 @@ print <$Lang::tr{'authentication'} - $Lang::tr{'username'} + $Lang::tr{'username'} * - $Lang::tr{'password'} + $Lang::tr{'password'}  @@ -782,7 +945,7 @@ END } print < - $Lang::tr{'script name'} * + $Lang::tr{'script name'}

@@ -803,7 +966,7 @@ print <




- $Lang::tr{'profile name'} + $Lang::tr{'profile name'} * @@ -812,14 +975,16 @@ print < $Lang::tr{'legend'}: - * $Lang::tr{'this field may be blank'} + * $Lang::tr{'required field'} - END ; -&Header::closebox(); } +print ""; + +&Header::closebox(); + print "\n"; &Header::closebigbox(); @@ -851,6 +1016,7 @@ sub initprofile { $pppsettings{'PROFILENAME'} = $Lang::tr{'unnamed'}; $pppsettings{'COMPORT'} = 'ttyS0'; + $pppsettings{'MONPORT'} = ''; $pppsettings{'DTERATE'} = 115200; $pppsettings{'SPEAKER'} = 'off'; $pppsettings{'RECONNECTION'} = 'persistent'; @@ -864,16 +1030,13 @@ sub initprofile $pppsettings{'ENCAP'} = '0'; $pppsettings{'VPI'} = '1'; $pppsettings{'VCI'} = '32'; - $pppsettings{'PHONEBOOK'} = 'RELAY_PPP1'; + $pppsettings{'ATM_DEV'} = '0'; + $pppsettings{'PPTP_PEER'} = '10.0.0.138'; + $pppsettings{'PPTP_NICCFG'} = '10.0.0.140/24 broadcast 10.0.0.255'; + $pppsettings{'PPTP_ROUTE'} = ''; $pppsettings{'PROTOCOL'} = 'RFC2364'; - $pppsettings{'METHOD'} = 'PPPOE_PLUGIN'; - if ( $pppsettings{'METHOD'} eq 'PPPOE_PLUGIN' ) { - $pppsettings{'MTU'} = '1492'; - $pppsettings{'MRU'} = '1492'; - } else { - $pppsettings{'MTU'} = '1452'; - $pppsettings{'MRU'} = '1452'; - } + $pppsettings{'MTU'} = ''; + $pppsettings{'MRU'} = ''; $pppsettings{'DIALMODE'} = 'T'; $pppsettings{'MAXRETRIES'} = 5; $pppsettings{'HOLDOFF'} = 30; @@ -883,7 +1046,15 @@ sub initprofile $pppsettings{'DNS'} = 'Automatic'; $pppsettings{'DEBUG'} = 'off'; $pppsettings{'BACKUPPROFILE'} = $pppsettings{'PROFILE'}; - + $pppsettings{'IPTVSERVERS'} = '192.168.2.51/32'; + $pppsettings{'IPTV'} = 'disable'; + $pppsettings{'INET_VLAN'} = '7'; + $pppsettings{'IPTV_VLAN'} = '8'; + + if ( -e '/usr/local/bin/igmpproxy'){ + $pppsettings{'IPTV'} = 'enable'; + } + # Get PPPoE settings so we can see if PPPoE is enabled or not. &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);