summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2015-06-29 22:50:15 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2015-06-29 22:50:34 +0300
commit3c12d1a9603af01e57ba45ecef498ec8f1e7a0c6 (patch)
tree8534afa62ad936bea3efb4e63beb144461b228f7 /src
parentMerge pull request #620 from weiss/omit-non-anon-msg (diff)
Do not rely on behaviour info when doing config validation
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_config.erl9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl
index d049e411..43e4154d 100644
--- a/src/ejabberd_config.erl
+++ b/src/ejabberd_config.erl
@@ -718,16 +718,13 @@ get_modules_with_options() ->
{ok, Mods} = application:get_key(ejabberd, modules),
lists:foldl(
fun(Mod, D) ->
- Attrs = Mod:module_info(attributes),
- Behavs = proplists:get_value(behaviour, Attrs, []),
- case lists:member(ejabberd_config, Behavs) or (Mod == ?MODULE) of
- true ->
- Opts = Mod:opt_type(''),
+ case catch Mod:opt_type('') of
+ Opts when is_list(Opts) ->
lists:foldl(
fun(Opt, Acc) ->
dict:append(Opt, Mod, Acc)
end, D, Opts);
- false ->
+ {'EXIT', {undef, _}} ->
D
end
end, dict:new(), [?MODULE|Mods]).