aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mod_pubsub.erl7
-rw-r--r--src/node_flat.erl2
-rw-r--r--src/node_flat_sql.erl2
-rw-r--r--src/pubsub_subscription.erl4
-rw-r--r--src/pubsub_subscription_sql.erl4
5 files changed, 9 insertions, 10 deletions
diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl
index a586935b8..a138b1896 100644
--- a/src/mod_pubsub.erl
+++ b/src/mod_pubsub.erl
@@ -251,7 +251,7 @@ init([ServerHost, Opts]) ->
Host = gen_mod:get_opt_host(ServerHost, Opts, <<"pubsub.@HOST@">>),
ejabberd_router:register_route(Host, ServerHost),
Access = gen_mod:get_opt(access_createnode, Opts,
- fun(A) when is_atom(A) -> A end, all),
+ fun acl:access_rules_validator/1, all),
PepOffline = gen_mod:get_opt(ignore_pep_from_offline, Opts,
fun(A) when is_boolean(A) -> A end, true),
IQDisc = gen_mod:get_opt(iqdisc, Opts,
@@ -262,7 +262,7 @@ init([ServerHost, Opts]) ->
fun(A) when is_integer(A) andalso A >= 0 -> A end, ?MAXITEMS),
MaxSubsNode = gen_mod:get_opt(max_subscriptions_node, Opts,
fun(A) when is_integer(A) andalso A >= 0 -> A end, undefined),
- pubsub_index:init(Host, ServerHost, Opts),
+ [pubsub_index:init(Host, ServerHost, Opts) || gen_mod:db_type(ServerHost, ?MODULE)==mnesia],
{Plugins, NodeTree, PepMapping} = init_plugins(Host, ServerHost, Opts),
DefaultModule = plugin(Host, hd(Plugins)),
BaseOptions = DefaultModule:options(),
@@ -3899,8 +3899,7 @@ purge_offline(Host, LJID, Node) ->
Error
end.
-mod_opt_type(access_createnode) ->
- fun (A) when is_atom(A) -> A end;
+mod_opt_type(access_createnode) -> fun acl:access_rules_validator/1;
mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
mod_opt_type(host) -> fun iolist_to_binary/1;
mod_opt_type(ignore_pep_from_offline) ->
diff --git a/src/node_flat.erl b/src/node_flat.erl
index 3afa49f22..9c1bc9b98 100644
--- a/src/node_flat.erl
+++ b/src/node_flat.erl
@@ -50,7 +50,7 @@
path_to_node/1, can_fetch_item/2, is_subscribed/1]).
init(_Host, _ServerHost, _Opts) ->
- %pubsub_subscription:init(),
+ %pubsub_subscription:init(Host, ServerHost, Opts),
mnesia:create_table(pubsub_state,
[{disc_copies, [node()]},
{type, ordered_set},
diff --git a/src/node_flat_sql.erl b/src/node_flat_sql.erl
index 5adf1e559..7e5ce788f 100644
--- a/src/node_flat_sql.erl
+++ b/src/node_flat_sql.erl
@@ -61,7 +61,7 @@
encode_host_like/1]).
init(_Host, _ServerHost, _Opts) ->
- %%pubsub_subscription_sql:init(),
+ %%pubsub_subscription_sql:init(Host, ServerHost, Opts),
ok.
terminate(_Host, _ServerHost) ->
diff --git a/src/pubsub_subscription.erl b/src/pubsub_subscription.erl
index f2c962257..297c6627c 100644
--- a/src/pubsub_subscription.erl
+++ b/src/pubsub_subscription.erl
@@ -28,7 +28,7 @@
-author("bjc@kublai.com").
%% API
--export([init/0, subscribe_node/3, unsubscribe_node/3,
+-export([init/3, subscribe_node/3, unsubscribe_node/3,
get_subscription/3, set_subscription/4,
make_subid/0,
get_options_xform/2, parse_options_xform/1]).
@@ -73,7 +73,7 @@
%%====================================================================
%% API
%%====================================================================
-init() -> ok = create_table().
+init(_Host, _ServerHost, _Opts) -> ok = create_table().
subscribe_node(JID, NodeId, Options) ->
case catch mnesia:sync_dirty(fun add_subscription/3, [JID, NodeId, Options])
diff --git a/src/pubsub_subscription_sql.erl b/src/pubsub_subscription_sql.erl
index 922b2a418..bb7b64112 100644
--- a/src/pubsub_subscription_sql.erl
+++ b/src/pubsub_subscription_sql.erl
@@ -28,7 +28,7 @@
-author("pablo.polvorin@process-one.net").
%% API
--export([init/0, subscribe_node/3, unsubscribe_node/3,
+-export([init/3, subscribe_node/3, unsubscribe_node/3,
get_subscription/3, set_subscription/4,
make_subid/0,
get_options_xform/2, parse_options_xform/1]).
@@ -71,7 +71,7 @@
%% API
%%====================================================================
-init() -> ok = create_table().
+init(_Host, _ServerHost, _Opts) -> ok = create_table().
-spec subscribe_node(_JID :: _, _NodeId :: _, Options :: [] | mod_pubsub:subOptions()) ->
{result, mod_pubsub:subId()}.