]> git.proxmox.com Git - pmg-api.git/commit
fix #2360: cluster: reload pmg-smtp-filter on rulechange
authorStoiko Ivanov <s.ivanov@proxmox.com>
Fri, 6 Sep 2019 13:30:15 +0000 (15:30 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 9 Sep 2019 06:01:26 +0000 (08:01 +0200)
commite29bdb0a457860d5120ece5d98eb43dee5e1fe50
tree9057aed6ac83ec0f236934a37cdfbdd1b3427e8d
parent59b6437679a1661661988264c66c85f9e2da0a65
fix #2360: cluster: reload pmg-smtp-filter on rulechange

When a node detects a change of the rule-database during clustersync,
the database update got done, however the running `pmg-smtp-filter`
instance was not notified of the updated ruleset. Adding a call to
PMG::DBTools::reload_ruledb (like in the API2 paths) fixes the issue.

As this is guarded by a digest change check it'll only reload if the
ruleDB really changed.

We do not pass the currewnt ruleDB instance to the reload method, as
it is only used for "rewrite_postfix_whitelist", which is already
executed through the pmgmirror::cluster_sync call to
PMG::Config->rewrite_config, if needed, so don't do that twice.

Tested by
* creating a 2 node PMG cluster
* adding and removing e-mail-addresses to the Blacklist (which was used in
  a high priority, active rule)
* sending e-mails from those addresses through PMG
* observing the action taken before/after the Rule DB got synced

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PMG/Cluster.pm