Files
webmin/jabber/save_ips.cgi
2007-04-12 20:24:50 +00:00

44 lines
985 B
Perl
Executable File

#!/usr/local/bin/perl
# save_ips.cgi
# Save allowed and denied IP addresses
require './jabber-lib.pl';
&ReadParse();
&error_setup($text{'ips_err'});
$conf = &get_jabber_config();
$io = &find("io", $conf);
@oldallow = &find("allow", $io);
@olddeny = &find("deny", $io);
# Validate and store inputs
if (!$in{'allow_def'}) {
foreach $a (split(/\s+/, $in{'allow'})) {
push(@allow, &check_addr($a, "allow"));
}
}
if (!$in{'deny_def'}) {
foreach $a (split(/\s+/, $in{'deny'})) {
push(@deny, &check_addr($a, "deny"));
}
}
&save_directive($io, "allow", \@allow);
&save_directive($io, "deny", \@deny);
&save_jabber_config($conf);
&redirect("");
sub check_addr
{
if (&check_ipaddress($_[0])) {
return [ $_[1], [ {}, "ip", [ { }, "0", $_[0] ] ] ];
}
elsif ($_[0] =~ /^(\S+)\/(\S+)$/ &&
&check_ipaddress($1) && &check_ipaddress($2)) {
return [ $_[1], [ {}, "ip", [ { }, "0", $1 ],
"mask", [ { }, "0", $2 ] ] ];
}
else {
&error(&text('ips_eaddr', $_[0]));
}
}