mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 06:03:28 +00:00
90 lines
2.1 KiB
Perl
Executable File
90 lines
2.1 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# save_score.cgi
|
|
# Save message scoring options
|
|
|
|
require './spam-lib.pl';
|
|
&error_setup($text{'score_err'});
|
|
&ReadParse();
|
|
&set_config_file_in(\%in);
|
|
&can_use_check("score");
|
|
&execute_before("score");
|
|
&lock_spam_files();
|
|
$conf = &get_config();
|
|
|
|
$hits_param = &version_atleast(3.0) ? "required_score" : "required_hits";
|
|
&parse_opt($conf, $hits_param, \&hits_check);
|
|
&parse_opt($conf, "auto_whitelist_factor", \&auto_check);
|
|
&parse_yes_no($conf, "use_bayes");
|
|
&parse_opt($conf, "check_mx_attempts", \&mx_check);
|
|
&parse_opt($conf, "check_mx_delay", \&mxdelay_check);
|
|
&parse_yes_no($conf, "skip_rbl_checks");
|
|
&parse_opt($conf, "rbl_timeout", \&timeout_check);
|
|
&parse_opt($conf, "num_check_received", \&received_check);
|
|
|
|
@trusted = grep { /\S/ } split(/\r?\n/, $in{'trusted_networks'});
|
|
&save_directives($conf, "trusted_networks", \@trusted, 1);
|
|
|
|
if (defined($in{'langs_def'})) {
|
|
if ($in{'langs_def'} == 2) {
|
|
&save_directives($conf, "ok_languages", [ ], 1);
|
|
}
|
|
elsif ($in{'langs_def'} == 1) {
|
|
&save_directives($conf, "ok_languages", [ "all" ], 1);
|
|
}
|
|
else {
|
|
&save_directives($conf, "ok_languages",
|
|
[ join(" ", split(/\0/, $in{'langs'})) ], 1);
|
|
}
|
|
}
|
|
|
|
if (defined($in{'locales_def'})) {
|
|
if ($in{'locales_def'} == 2) {
|
|
&save_directives($conf, "ok_locales", [ ], 1);
|
|
}
|
|
elsif ($in{'locales_def'} == 1) {
|
|
&save_directives($conf, "ok_locales", [ "all" ], 1);
|
|
}
|
|
else {
|
|
&save_directives($conf, "ok_locales",
|
|
[ join(" ", split(/\0/, $in{'locales'})) ], 1);
|
|
}
|
|
}
|
|
|
|
&flush_file_lines();
|
|
&unlock_spam_files();
|
|
&execute_after("score");
|
|
&webmin_log("score");
|
|
&redirect($redirect_url);
|
|
|
|
sub hits_check
|
|
{
|
|
$_[0] =~ /^\d+(\.\d+)?$/ || &error($text{'score_ehits'});
|
|
}
|
|
|
|
sub auto_check
|
|
{
|
|
$_[0] =~ /^\d+(\.\d+)?$/ && $_[0] >= 0 && $_[0] <= 1 ||
|
|
&error($text{'score_eauto'});
|
|
}
|
|
|
|
sub mx_check
|
|
{
|
|
$_[0] =~ /^\d+$/ || &error($text{'score_emx'});
|
|
}
|
|
|
|
sub mxdelay_check
|
|
{
|
|
$_[0] =~ /^\d+$/ || &error($text{'score_emxdelay'});
|
|
}
|
|
|
|
sub timeout_check
|
|
{
|
|
$_[0] =~ /^\d+$/ || &error($text{'score_etimeout'});
|
|
}
|
|
|
|
sub received_check
|
|
{
|
|
$_[0] =~ /^\d+$/ || &error($text{'score_ereceived'});
|
|
}
|
|
|