From b8c358866718cf1ff47e946cf5edd50398276a4e Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 20 Mar 2013 13:12:05 -0400 Subject: [PATCH] - Fixed FS#2783 - server config / mail / rbl list. --- interface/web/admin/lib/lang/de_server_config.lng | 1 + interface/web/admin/lib/lang/en_server_config.lng | 3 ++- server/plugins-available/postfix_server_plugin.inc.php | 16 +++++++++++----- interface/web/admin/form/server_config.tform.php | 4 ++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 8a466ac..7e8d197 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -319,6 +319,10 @@ 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])(,\s*(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]))*$/', + 'errmsg'=> 'rbl_error_regex'), + ), 'value' => '', 'width' => '40', 'maxlength' => '255' diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 9eeade4..a9dfe17 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -170,4 +170,5 @@ $wb['web_folder_protection_txt'] = 'Webverzeichnis unveränderlich machen (erweiterte Attribute)'; $wb['overtraffic_notify_admin_txt'] = 'Überschreiten des Transfer Limits an den Administrator senden'; $wb['overtraffic_notify_client_txt'] = 'Überschreiten des Transfer Limits an den Kunden senden'; +$wb["rbl_error_regex"] = 'Bitte geben Sie gültige RBL-Hostnamen an.'; ?> diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 75b22d6..5762734 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -169,5 +169,6 @@ $wb["enable_ip_wildcard_txt"] = 'Enable IP wildcard (*)'; $wb["web_folder_protection_txt"] = 'Make web folders immutable (extended attributes)'; $wb["overtraffic_notify_admin_txt"] = 'Send overtraffic notification to admin'; -$wb["overtraffic_notify_client_txt"] = 'Send overtraffic notification to client'; +$wb["overtraffic_notify_client_txt"] = 'Send overtraffic notification to client'; +$wb["rbl_error_regex"] = 'Please specify valid RBL hostnames.'; ?> diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 98dd675..8d00e31 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -80,6 +80,7 @@ // get the config $app->uses("getconf"); + $old_ini_data = $app->ini_parser->parse_ini_string($data['old']['config']); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); copy('/etc/postfix/main.cf','/etc/postfix/main.cf~'); @@ -107,18 +108,23 @@ exec("postconf -e 'relayhost ='"); } - if($mail_config['realtime_blackhole_list'] != '') { - $rbl_hosts = explode(",",str_replace(" ", "", $mail_config['realtime_blackhole_list'])); + if($mail_config['realtime_blackhole_list'] != $old_ini_data['mail']['realtime_blackhole_list']) { + $rbl_hosts = trim(preg_replace('/\s+/', '', $mail_config['realtime_blackhole_list'])); + if($rbl_hosts != ''){ + $rbl_hosts = explode(",", $rbl_hosts); + } $options = explode(", ", exec("postconf -h smtpd_recipient_restrictions")); foreach ($options as $key => $value) { if (!preg_match('/reject_rbl_client/', $value)) { $new_options[] = $value; } } - foreach ($rbl_hosts as $key => $value) { - $new_options[] = "reject_rbl_client ".$value; + if(is_array($rbl_hosts) && !empty($rbl_hosts)){ + foreach ($rbl_hosts as $key => $value) { + $value = trim($value); + if($value != '') $new_options[] = "reject_rbl_client ".$value; + } } - exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); } -- Gitblit v1.9.1