From c4943cffe83fda5ce791133ca94bb6f0bbac4cbe Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Mon, 30 Nov 2015 14:57:21 +0100 Subject: [PATCH] Follow pubsub configuration when using virtual nodetree --- src/mod_pubsub.erl | 3 ++- src/nodetree_virtual.erl | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index 13fe0cc36..deaed10fc 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -83,7 +83,8 @@ -export([subscription_to_string/1, affiliation_to_string/1, string_to_subscription/1, string_to_affiliation/1, extended_error/2, extended_error/3, service_jid/1, - tree/1, tree/2, plugin/2, config/3, host/1, serverhost/1]). + tree/1, tree/2, plugin/2, plugins/1, config/3, + host/1, serverhost/1]). %% API and gen_server callbacks -export([start_link/2, start/2, stop/1, init/1, diff --git a/src/nodetree_virtual.erl b/src/nodetree_virtual.erl index d56be860f..9797ad8db 100644 --- a/src/nodetree_virtual.erl +++ b/src/nodetree_virtual.erl @@ -65,10 +65,11 @@ get_node(Host, Node) -> get_node(Nidx) -> {Host, Node} = nodeid(Nidx), - Record = #pubsub_node{nodeid = Node, id = Nidx}, - Module = jlib:binary_to_atom(<<"node_", (Record#pubsub_node.type)/binary>>), - Record#pubsub_node{owners = [{<<"">>, Host, <<"">>}], - options = Module:options()}. + [Type|_] = mod_pubsub:plugins(Host), + Module = mod_pubsub:plugin(Host, Type), + #pubsub_node{nodeid = Node, id = Nidx, type = Type, + owners = [{<<"">>, Host, <<"">>}], + options = Module:options()}. get_nodes(Host, _From) -> get_nodes(Host).