mirror of
https://github.com/webmin/webmin.git
synced 2025-08-12 02:18:16 +00:00
30 lines
723 B
Perl
Executable File
30 lines
723 B
Perl
Executable File
#!/usr/local/bin/perl
|
|
# save_policy.cgi
|
|
# Update some policy file
|
|
|
|
require './ipsec-lib.pl';
|
|
&ReadParse();
|
|
&error_setup($text{'policy_err'});
|
|
|
|
if ($in{'mode'} == 0) {
|
|
@policies = ( );
|
|
}
|
|
elsif ($in{'mode'} == 1) {
|
|
@policies = ( "0.0.0.0/0" );
|
|
}
|
|
else {
|
|
for($i=0; defined($n = $in{"net_$i"}); $i++) {
|
|
next if ($n eq '');
|
|
$m = $in{"mask_$i"};
|
|
&check_ipaddress($n) || &error(&text('policy_enet', $i+1));
|
|
$m =~ /^\d+/ && $m <= 32 || &error(&text('policy_emask', $i+1));
|
|
push(@policies, "$n/$m");
|
|
}
|
|
}
|
|
&lock_file("$config{'policies_dir'}/$in{'policy'}");
|
|
&write_policy($in{'policy'}, \@policies);
|
|
&unlock_file("$config{'policies_dir'}/$in{'policy'}");
|
|
&webmin_log("policy", undef, $in{'policy'});
|
|
&redirect("");
|
|
|