use CGI::Carp 'fatalsToBrowser';
#workaround to suppress a warning when a variable is used only once
my @dummy = ( ${Header::colourgreen} );
+my @dummy = ( ${Header::colourblue} );
undef (@dummy);
my %color = ();
my %ccdroute2hash=();
my $val=0;
my $i=1;
- if ($cgiparams{'IFROUTE'} ne ''){
- &General::readhasharray("${General::swroot}/ovpn/ccdroute2", \%ccdroute2hash);
+
+ &General::readhasharray("${General::swroot}/ovpn/ccdroute2", \%ccdroute2hash);
+ if($cgiparams{'IFROUTE'} eq $Lang::tr{'ccd none'} || $cgiparams{'IFROUTE'} eq '') {
+ undef $cgiparams{'IFROUTE'};
+ foreach my $key (keys %ccdroute2hash){
+ if ($ccdroute2hash{$key}[0] eq $cgiparams{'NAME'}) {
+ delete $ccdroute2hash{$key};
+ }
+ }
+ &General::writehasharray("${General::swroot}/ovpn/ccdroute2", \%ccdroute2hash);
+ }else{
#find key to use
foreach my $key (keys %ccdroute2hash) {
if ($ccdroute2hash{$key}[0] eq $cgiparams{'NAME'}) {
}
}
$ccdroute2hash{$keypoint}[0]=$cgiparams{'NAME'};
- @temp = split("\n",$cgiparams{'IFROUTE'});
+ @temp = split(/\|/,$cgiparams{'IFROUTE'});
foreach $val (@temp){
chomp($val);
$val=~s/\s*$//g;
goto VPNCONF_ERROR;
}
if ($cgiparams{'CCD_DNS2'} ne ''){
-
}
-
-
if ($cgiparams{'CCD_WINS'} ne '' && ! &General::validip($cgiparams{'CCD_WINS'})) {
$errormessage=$errormessage."<br>".$Lang::tr{'invalid input for dhcp wins'};
goto VPNCONF_ERROR;
print"</td></tr>";
}
print "</table><br><br>";
-print <<END
-<table border='0' width='100%'>
-<tr><td colspan='4'><hr><br><b>$Lang::tr{'ccd client options'}</td></tr>
-<tr><td colspan='4' height='20'></td></tr>
-<tr><td width='20%'>Redirect Gateway:</td><td colspan='3'><input type='checkbox' name='RG' $checked{'RG'}{'on'} /></td></tr>
-<tr><td colspan='4'> </td></tr>
-<tr><td valign='top'>$Lang::tr{'ccd iroute'}<br>$Lang::tr{'ccd iroute2'}</td><td align='left' width='30%'><textarea name='IR' cols='26' rows='6' wrap='off'>
+
+
+
+ print <<END
+ <table border='0' width='100%'>
+ <tr><td colspan='4'><hr><br><b>$Lang::tr{'ccd client options'}</td></tr>
+ <tr><td colspan='4' height='20'></td></tr>
+ <tr><td width='20%'>Redirect Gateway:</td><td colspan='3'><input type='checkbox' name='RG' $checked{'RG'}{'on'} /></td></tr>
+ <tr><td colspan='4'> </td></tr>
+ <tr><td valign='top'>$Lang::tr{'ccd iroute'}<br>$Lang::tr{'ccd iroute2'}</td><td align='left' width='30%'><textarea name='IR' cols='26' rows='6' wrap='off'>
END
;
-
-if ($cgiparams{'IR'} ne ''){
- print $cgiparams{'IR'};
-}else{
- &General::readhasharray ("${General::swroot}/ovpn/ccdroute", \%ccdroutehash);
- foreach my $key (keys %ccdroutehash) {
- if( $cgiparams{'NAME'} eq $ccdroutehash{$key}[0]){
- foreach my $i (1 .. $#{$ccdroutehash{$key}}) {
- $ccdroutehash{$key}[$i].="\n";
- print $ccdroutehash{$key}[$i];
- $cgiparams{'IR'} .= $ccdroutehash{$key}[$i];
+
+ if ($cgiparams{'IR'} ne ''){
+ print $cgiparams{'IR'};
+ }else{
+ &General::readhasharray ("${General::swroot}/ovpn/ccdroute", \%ccdroutehash);
+ foreach my $key (keys %ccdroutehash) {
+ if( $cgiparams{'NAME'} eq $ccdroutehash{$key}[0]){
+ foreach my $i (1 .. $#{$ccdroutehash{$key}}) {
+ $ccdroutehash{$key}[$i].="\n";
+ print $ccdroutehash{$key}[$i];
+ $cgiparams{'IR'} .= $ccdroutehash{$key}[$i];
+ }
}
}
}
-}
-
-print <<END
-</textarea></td><td valign='top' colspan='2'>$Lang::tr{'ccd iroutehint'}</td></tr>
-<tr><td colspan='4'><br></td></tr>
-<tr><td valign='top' rowspan='3'>$Lang::tr{'ccd iroute'}<br>$Lang::tr{'ccd iroute3'}</td><td align='left' width='30%' rowspan='3'><textarea name='IFROUTE' cols='26' rows='6' wrap='off'>
+
+ print <<END
+ </textarea></td><td valign='top' colspan='2'>$Lang::tr{'ccd iroutehint'}</td></tr>
+ <tr><td colspan='4'><br></td></tr>
+ <tr><td valign='top' rowspan='3'>$Lang::tr{'ccd iroute'}<br>$Lang::tr{'ccd iroute3'}</td><td align='left' valign='top' rowspan='3'><select name='IFROUTE' style="width: 205px"; multiple>
END
;
-if ($cgiparams{'IFROUTE'} ne ''){
- print $cgiparams{'IFROUTE'};
-}else{
- &General::readhasharray ("${General::swroot}/ovpn/ccdroute2", \%ccdroute2hash);
- foreach my $key (keys %ccdroute2hash) {
- if( $cgiparams{'NAME'} eq $ccdroute2hash{$key}[0]){
- foreach my $i (1 .. $#{$ccdroute2hash{$key}}) {
- $ccdroute2hash{$key}[$i].="\n";
- print $ccdroute2hash{$key}[$i];
- $cgiparams{'IFROUTE'} .= $ccdroutehash{$key}[$i];
+ our @current = ();
+ open(FILE, "${General::swroot}/main/routing") ;
+ @current = <FILE>;
+ close (FILE);
+ &General::readhasharray ("${General::swroot}/ovpn/ccdroute2", \%ccdroute2hash);
+ my $set=0;
+ print"<option>$Lang::tr{'ccd none'}</option>";
+ foreach my $line (@current) {
+ chomp($line); # remove newline
+ my @temp=split(/\,/,$line);
+ $temp[1] ='' unless defined $temp[1]; # not always populated
+ $temp[1]=&General::iporsubtodec($temp[1]);
+ foreach my $key (keys %ccdroute2hash) {
+ if($ccdroute2hash{$key}[0] eq $cgiparams{'NAME'}){
+ foreach my $i (1 .. $#{$ccdroute2hash{$key}}) {
+ if($ccdroute2hash{$key}[$i] eq &General::iporsubtodec($temp[1])){
+ $set=1;
+ }
+ }
+ }
+ }
+ if ($set == '1'){ print"<option selected>$temp[1]</option>";$set=0;}else{print"<option>$temp[1]</option>";}
}
- }
- }
-}
-
-
-print<<END
-</textarea></td><td valign='top'>DNS1:</td><td valign='top'><input type='TEXT' name='CCD_DNS1' value='$cgiparams{'CCD_DNS1'}' size='30' /></td></tr>
-<tr valign='top'><td>DNS2:</td><td><input type='TEXT' name='CCD_DNS2' value='$cgiparams{'CCD_DNS2'}' size='30' /></td></tr>
-<tr valign='top'><td valign='top'>WINS:</td><td><input type='TEXT' name='CCD_WINS' value='$cgiparams{'CCD_WINS'}' size='30' /></td></tr>
-
-</table><br><hr>
-
-
+
+
+
+ print<<END
+ </select></td><td valign='top'>DNS1:</td><td valign='top'><input type='TEXT' name='CCD_DNS1' value='$cgiparams{'CCD_DNS1'}' size='30' /></td></tr>
+ <tr valign='top'><td>DNS2:</td><td><input type='TEXT' name='CCD_DNS2' value='$cgiparams{'CCD_DNS2'}' size='30' /></td></tr>
+ <tr valign='top'><td valign='top'>WINS:</td><td><input type='TEXT' name='CCD_WINS' value='$cgiparams{'CCD_WINS'}' size='30' /></td></tr></table><br><hr>
+
END
;
-
-
+
#CCD End
#########
-
+
}
# if ($cgiparams{'KEY'}) {