mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-20 17:27:00 +01:00
mod_pubsub: Fall back to default plugin options
If the plugin handling a node creation request isn't enabled, fall back to applying the default plugin (currently node_flat) options.
This commit is contained in:
parent
a9583b43c3
commit
36187e07d0
@ -3366,23 +3366,19 @@ get_option(Options, Var, Def) ->
|
|||||||
|
|
||||||
-spec node_options(host(), binary()) -> [{atom(), any()}].
|
-spec node_options(host(), binary()) -> [{atom(), any()}].
|
||||||
node_options(Host, Type) ->
|
node_options(Host, Type) ->
|
||||||
DefaultOpts = node_plugin_options(Host, Type),
|
|
||||||
ConfigOpts = config(Host, default_node_config),
|
ConfigOpts = config(Host, default_node_config),
|
||||||
case lists:member(Type, config(Host, plugins)) of
|
PluginOpts = node_plugin_options(Host, Type),
|
||||||
true ->
|
merge_config([ConfigOpts, PluginOpts]).
|
||||||
merge_config([ConfigOpts, DefaultOpts]);
|
|
||||||
false -> ConfigOpts
|
|
||||||
end.
|
|
||||||
|
|
||||||
-spec node_plugin_options(host(), binary()) -> [{atom(), any()}].
|
-spec node_plugin_options(host(), binary()) -> [{atom(), any()}].
|
||||||
node_plugin_options(Host, Type) ->
|
node_plugin_options(Host, Type) ->
|
||||||
Module = plugin(Host, Type),
|
Module = plugin(Host, Type),
|
||||||
case catch Module:options() of
|
case {lists:member(Type, config(Host, plugins)), catch Module:options()} of
|
||||||
{'EXIT', {undef, _}} ->
|
{true, Opts} when is_list(Opts) ->
|
||||||
|
Opts;
|
||||||
|
{_, _} ->
|
||||||
DefaultModule = plugin(Host, ?STDNODE),
|
DefaultModule = plugin(Host, ?STDNODE),
|
||||||
DefaultModule:options();
|
DefaultModule:options()
|
||||||
Result ->
|
|
||||||
Result
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec node_owners_action(host(), binary(), nodeIdx(), [ljid()]) -> [ljid()].
|
-spec node_owners_action(host(), binary(), nodeIdx(), [ljid()]) -> [ljid()].
|
||||||
|
Loading…
Reference in New Issue
Block a user