]> git.proxmox.com Git - pmg-api.git/commitdiff
PMG/API2/SMTPWhitelist.pm - update postfix files after modifications
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 14 Nov 2017 06:13:09 +0000 (07:13 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 14 Nov 2017 06:13:09 +0000 (07:13 +0100)
PMG/API2/SMTPWhitelist.pm
PMG/Config.pm
PMG/DBTools.pm
PMG/RuleDB/Object.pm

index cb95a3d5ce7ab1df280bb21abef3d29febda7d6b..38cfbdbc4b9c640a2dc4cfe4a0d9f4fa27d375af 100644 (file)
@@ -130,7 +130,7 @@ __PACKAGE__->register_method ({
 
        $rdb->delete_object($obj);
 
-       PMG::DBTools::reload_ruledb();
+       PMG::DBTools::reload_ruledb($rdb);
 
        return undef;
     }});
index 22450811c2f0b1abe38bf8c873e280c4272776d0..cc80e60fa75422d46e1e79b925d204fadeb3a6b2 100755 (executable)
@@ -1236,7 +1236,7 @@ my $write_smtp_whitelist = sub {
     return 1;
 };
 
-my $rewrite_config_whitelist = sub {
+sub rewrite_postfix_whitelist {
     my ($rulecache) = @_;
 
     # see man page for regexp_table for postfix regex table format
@@ -1313,7 +1313,7 @@ sub rewrite_config_postfix {
     $changes = 1 if $self->rewrite_config_file(
        'master.cf.in', '/etc/postfix/master.cf');
 
-    $rewrite_config_whitelist->($rulecache) if $rulecache;
+    rewrite_postfix_whitelist($rulecache) if $rulecache;
 
     # fixme: rewrite_config_tls_policy ($class);
 
index 36c214d93a992b9719b843b33a35d7ef373d8697..1696a81f448dc292e93c8a3c6e77e1fc2e8f6401 100644 (file)
@@ -14,6 +14,7 @@ use PVE::Tools;
 use PMG::Utils;
 use PMG::RuleDB;
 use PMG::MailQueue;
+use PMG::Config;
 
 our $default_db_name = "Proxmox_ruledb";
 
@@ -1205,6 +1206,19 @@ sub load_mail_data {
 }
 
 sub reload_ruledb {
+    my ($ruledb) = @_;
+
+    # Note: we pass $ruledb when modifying SMTP whitelist
+    if (defined($ruledb)) {
+       eval {
+           my $rulecache = PMG::RuleCache->new($ruledb);
+           PMG::Config::rewrite_postfix_whitelist($rulecache);
+       };
+       if (my $err = $@) {
+           warn "problems updating SMTP whitelist - $err";
+       }
+    }
+
     my $pid_file = '/var/run/pmg-smtp-filter.pid';
     my $pid = PVE::Tools::file_read_firstline($pid_file);
 
index b725a6f6e6065a1595bc9787b6c732b49bdb1d6e..bae6078c1935fb4ede595f2c5cdf40f605021e5d 100644 (file)
@@ -197,7 +197,11 @@ sub register_api {
 
            my $id = $obj->save($rdb);
 
-           PMG::DBTools::reload_ruledb();
+           if ($use_greylist_gid) {
+               PMG::DBTools::reload_ruledb($rdb);
+           } else {
+               PMG::DBTools::reload_ruledb();
+           }
 
            return $id;
        }});
@@ -257,7 +261,11 @@ sub register_api {
 
            $obj->save($rdb);
 
-           PMG::DBTools::reload_ruledb();
+           if ($use_greylist_gid) {
+               PMG::DBTools::reload_ruledb($rdb);
+           } else {
+               PMG::DBTools::reload_ruledb();
+           }
 
            return undef;
        }});