summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Khramtsov <xramtsov@gmail.com>2017-12-27 09:34:19 +0300
committerGitHub <noreply@github.com>2017-12-27 09:34:19 +0300
commitbbb1f7002d6e4b633a1c79ac018cf968ec4533a9 (patch)
treedffe9a9c59ef0d5fed08a67b3bd2f1ee938d03f9
parentUpdate the test suite to support new XMPP socket API (diff)
parentForget old access/shaper rules and ACLs on reload (diff)
Merge pull request #2188 from weiss/fix-acl-reload
Forget old access/shaper rules and ACLs on reload
-rw-r--r--src/acl.erl14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/acl.erl b/src/acl.erl
index 2d848b99..21e91265 100644
--- a/src/acl.erl
+++ b/src/acl.erl
@@ -32,9 +32,9 @@
-export([add_access/3, clear/0]).
-export([start_link/0, add/3, add_list/3, add_local/3, add_list_local/3,
- load_from_config/0, match_rule/3, any_rules_allowed/3,
- transform_options/1, opt_type/1, acl_rule_matches/3,
- acl_rule_verify/1, access_matches/3,
+ load_from_config/0, reload_from_config/0, match_rule/3,
+ any_rules_allowed/3, transform_options/1, opt_type/1,
+ acl_rule_matches/3, acl_rule_verify/1, access_matches/3,
transform_access_rules_config/1,
parse_ip_netmask/1,
access_rules_validator/1, shaper_rules_validator/1,
@@ -92,7 +92,7 @@ init([]) ->
[{ram_copies, [node()]},
{local_content, true},
{attributes, record_info(fields, access)}]),
- ejabberd_hooks:add(config_reloaded, ?MODULE, load_from_config, 20),
+ ejabberd_hooks:add(config_reloaded, ?MODULE, reload_from_config, 20),
load_from_config(),
{ok, #state{}}.
@@ -236,6 +236,12 @@ load_from_config() ->
end, ShaperRules)
end, Hosts).
+-spec reload_from_config() -> ok.
+
+reload_from_config() ->
+ clear(),
+ load_from_config().
+
%% Delete all previous set ACLs and Access rules
clear() ->
mnesia:clear_table(acl),