X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2FPMG%2FConfig.pm;h=061396e4d6da1025c7ca4c5bfde2968f29a5f79b;hb=b0f049b6674ea574fc3352859a71c54d40603a50;hp=386df18161f2c9cff9f9d7fb580ec37020341417;hpb=ceb383cbf947cea573edf8bc4ad32b7bf8927854;p=pmg-api.git diff --git a/src/PMG/Config.pm b/src/PMG/Config.pm old mode 100755 new mode 100644 index 386df18..061396e --- a/src/PMG/Config.pm +++ b/src/PMG/Config.pm @@ -63,9 +63,16 @@ sub type { sub properties { return { advfilter => { - description => "Use advanced filters for statistic.", + description => "Enable advanced filters for statistic.", + verbose_description => < 'boolean', - default => 1, + default => 0, }, dailyreport => { description => "Send daily reports.", @@ -170,12 +177,12 @@ sub properties { use_bayes => { description => "Whether to use the naive-Bayesian-style classifier.", type => 'boolean', - default => 1, + default => 0, }, use_awl => { description => "Use the Auto-Whitelist plugin.", type => 'boolean', - default => 1, + default => 0, }, use_razor => { description => "Whether to use Razor2, if it is available.", @@ -452,8 +459,17 @@ sub get_max_filters { my $max_servers = 5; my $servermem = 120; + my $base; my $memory = physical_memory(); - my $add_servers = int(($memory - 512)/$servermem); + if ($memory < 3840) { + warn "low amount of system memory installed, recommended is 4+ GB\n" + ."to prevent OOM kills, it is better to set max_filters manually\n"; + $base = $memory > 1536 ? 1024 : 512; + } else { + $base = 2816; + $servermem = 150; + } + my $add_servers = int(($memory - $base)/$servermem); $max_servers += $add_servers if $add_servers > 0; $max_servers = 40 if $max_servers > 40; @@ -519,11 +535,12 @@ sub properties { default => 0, }, smarthost => { - description => "When set, all outgoing mails are deliverd to the specified smarthost.", + description => "When set, all outgoing mails are deliverd to the specified smarthost." + ." (postfix option `default_transport`)", type => 'string', format => 'address', }, smarthostport => { - description => "SMTP port number for smarthost.", + description => "SMTP port number for smarthost. (postfix option `default_transport`)", type => 'integer', minimum => 1, maximum => 65535, @@ -587,13 +604,13 @@ sub properties { default => 0, }, maxsize => { - description => "Maximum email size. Larger mails are rejected.", + description => "Maximum email size. Larger mails are rejected. (postfix option `message_size_limit`)", type => 'integer', minimum => 1024, default => 1024*1024*10, }, dwarning => { - description => "SMTP delay warning time (in hours).", + description => "SMTP delay warning time (in hours). (postfix option `delay_warning_time`)", type => 'integer', minimum => 0, default => 4, @@ -643,31 +660,35 @@ sub properties { default => 64, }, helotests => { - description => "Use SMTP HELO tests.", + description => "Use SMTP HELO tests. (postfix option `smtpd_helo_restrictions`)", type => 'boolean', default => 0, }, rejectunknown => { - description => "Reject unknown clients.", + description => "Reject unknown clients. (postfix option `reject_unknown_client_hostname`)", type => 'boolean', default => 0, }, rejectunknownsender => { - description => "Reject unknown senders.", + description => "Reject unknown senders. (postfix option `reject_unknown_sender_domain`)", type => 'boolean', default => 0, }, verifyreceivers => { - description => "Enable receiver verification. The value spefifies the numerical reply code when the Postfix SMTP server rejects a recipient address.", + description => "Enable receiver verification. The value spefifies the numerical reply" + ." code when the Postfix SMTP server rejects a recipient address." + ." (postfix options `reject_unknown_recipient_domain`, `reject_unverified_recipient`," + ." and `unverified_recipient_reject_code`)", type => 'string', enum => ['450', '550'], }, dnsbl_sites => { - description => "Optional list of DNS white/blacklist domains (see postscreen_dnsbl_sites parameter).", + description => "Optional list of DNS white/blacklist domains (postfix option `postscreen_dnsbl_sites`).", type => 'string', format => 'dnsbl-entry-list', }, dnsbl_threshold => { - description => "The inclusive lower bound for blocking a remote SMTP client, based on its combined DNSBL score (see postscreen_dnsbl_threshold parameter).", + description => "The inclusive lower bound for blocking a remote SMTP client, based on" + ." its combined DNSBL score (postfix option `postscreen_dnsbl_threshold`).", type => 'integer', minimum => 0, default => 1 @@ -683,7 +704,7 @@ sub properties { default => 0 }, smtputf8 => { - description => "Enable SMTPUTF8 support in Postfix and detection for locally generated mail", + description => "Enable SMTPUTF8 support in Postfix and detection for locally generated mail (postfix option `smtputf8_enable`)", type => 'boolean', default => 1 }, @@ -927,10 +948,8 @@ sub get_config { sub read_pmg_conf { my ($filename, $fh) = @_; - local $/ = undef; # slurp mode - my $raw; - $raw = <$fh> if defined($fh); + $raw = do { local $/ = undef; <$fh> } if defined($fh); return PMG::Config::Base->parse_config($filename, $raw); }