aboutsummaryrefslogtreecommitdiff
path: root/src/mod_vcard.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_vcard.erl')
-rw-r--r--src/mod_vcard.erl32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/mod_vcard.erl b/src/mod_vcard.erl
index ff24eb995..137ace03e 100644
--- a/src/mod_vcard.erl
+++ b/src/mod_vcard.erl
@@ -12,7 +12,7 @@
-behaviour(gen_mod).
--export([start/2, init/2, stop/1,
+-export([start/2, init/3, stop/1,
process_local_iq/3,
process_sm_iq/3,
reindex_vcards/0,
@@ -70,36 +70,36 @@ start(Host, Opts) ->
gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_VCARD,
?MODULE, process_sm_iq, IQDisc),
catch mod_disco:register_sm_feature(Host, ?NS_VCARD),
- Hosts = gen_mod:get_hosts(Opts, "vjud."),
+ MyHost = gen_mod:get_opt(host, Opts, "vjud." ++ Host),
Search = gen_mod:get_opt(search, Opts, true),
register(gen_mod:get_module_proc(Host, ?PROCNAME),
- spawn(?MODULE, init, [Hosts, Search])).
+ spawn(?MODULE, init, [MyHost, Host, Search])).
-init(Hosts, Search) ->
+init(Host, ServerHost, Search) ->
case Search of
false ->
- loop(Hosts);
+ loop(Host, ServerHost);
_ ->
- ejabberd_router:register_routes(Hosts),
- loop(Hosts)
+ ejabberd_router:register_route(Host),
+ loop(Host, ServerHost)
end.
-loop(Hosts) ->
+loop(Host, ServerHost) ->
receive
{route, From, To, Packet} ->
- case catch do_route(From, To, Packet) of
+ case catch do_route(ServerHost, From, To, Packet) of
{'EXIT', Reason} ->
?ERROR_MSG("~p", [Reason]);
_ ->
ok
end,
- loop(Hosts);
+ loop(Host, ServerHost);
stop ->
- catch ejabberd_router:unregister_routes(Hosts),
+ ejabberd_router:unregister_route(Host),
ok;
_ ->
- loop(Hosts)
+ loop(Host, ServerHost)
end.
stop(Host) ->
@@ -272,7 +272,7 @@ set_vcard(User, LServer, VCARD) ->
-do_route(From, To, Packet) ->
+do_route(ServerHost, From, To, Packet) ->
#jid{user = User, resource = Resource} = To,
if
(User /= "") or (Resource /= "") ->
@@ -310,7 +310,7 @@ do_route(From, To, Packet) ->
[{xmlelement, "x",
[{"xmlns", ?NS_XDATA},
{"type", "result"}],
- search_result(Lang, To, XData)
+ search_result(Lang, To, ServerHost, XData)
}]}]},
ejabberd_router:route(
To, From, jlib:iq_to_xml(ResIQ))
@@ -420,7 +420,7 @@ find_xdata_el1([_ | Els]) ->
{xmlelement, "field", [{"label", translate:translate(Lang, Label)},
{"var", Var}], []}).
-search_result(Lang, JID, Data) ->
+search_result(Lang, JID, ServerHost, Data) ->
[{xmlelement, "title", [],
[{xmlcdata, translate:translate(Lang, "Results of search in ") ++
jlib:jid_to_string(JID)}]},
@@ -437,7 +437,7 @@ search_result(Lang, JID, Data) ->
?LFIELD("email", "email"),
?LFIELD("Organization Name", "orgname"),
?LFIELD("Organization Unit", "orgunit")
- ]}] ++ lists:map(fun record_to_item/1, search(JID#jid.lserver, Data)).
+ ]}] ++ lists:map(fun record_to_item/1, search(ServerHost, Data)).
-define(FIELD(Var, Val),
{xmlelement, "field", [{"var", Var}],