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.erl22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/mod_vcard.erl b/src/mod_vcard.erl
index 7c052256c..cbb11fa8a 100644
--- a/src/mod_vcard.erl
+++ b/src/mod_vcard.erl
@@ -104,20 +104,21 @@
-define(PROCNAME, ejabberd_mod_vcard).
-start(Host, Opts) ->
- HostB = list_to_binary(Host),
+start(Host, Opts) when is_list(Host) ->
+ start(list_to_binary(Host), Opts);
+start(HostB, Opts) ->
Backend = gen_mod:get_opt(backend, Opts, mnesia),
gen_storage:create_table(Backend, HostB, vcard,
[{disc_only_copies, [node()]},
- {odbc_host, Host},
+ {odbc_host, HostB},
{attributes, record_info(fields, vcard)},
{types, [{user_host, {text, text}}]}]),
gen_storage:create_table(Backend, HostB, vcard_search,
[{disc_copies, [node()]},
- {odbc_host, Host},
+ {odbc_host, HostB},
{attributes, record_info(fields, vcard_search)},
{types, [{user_host, {text, text}}]}]),
- update_tables(Host, Backend),
+ update_tables(HostB, Backend),
gen_storage:add_table_index(HostB, vcard_search, lusername),
gen_storage:add_table_index(HostB, vcard_search, lfn),
gen_storage:add_table_index(HostB, vcard_search, lfamily),
@@ -147,10 +148,10 @@ start(Host, Opts) ->
gen_iq_handler:add_iq_handler(ejabberd_sm, HostB, ?NS_VCARD,
?MODULE, process_sm_iq, IQDisc),
ejabberd_hooks:add(disco_sm_features, HostB, ?MODULE, get_sm_features, 50),
- MyHost = gen_mod:expand_host_name(Host, Opts, "vjud"),
+ MyHost = gen_mod:expand_host_name(HostB, Opts, "vjud"),
Search = gen_mod:get_opt(search, Opts, true),
- register(gen_mod:get_module_proc(Host, ?PROCNAME),
- spawn(?MODULE, init, [MyHost, Host, Search])).
+ register(gen_mod:get_module_proc(HostB, ?PROCNAME),
+ spawn(?MODULE, init, [MyHost, HostB, Search])).
init(Host, ServerHost, Search) ->
@@ -343,7 +344,7 @@ set_vcard(User, Server, VCARD) ->
})
end,
gen_storage:transaction(Server, vcard, F),
- ejabberd_hooks:run(vcard_set, Server, [LUser, Server, VCARD])
+ ejabberd_hooks:run(vcard_set, Server, [User, Server, VCARD])
catch
_ ->
{error, badarg}
@@ -755,6 +756,9 @@ remove_user(User, Server) when is_binary(User), is_binary(Server) ->
%%% Update tables
%%%
+update_tables(global, Storage) ->
+ [update_tables(HostB, Storage) || HostB <- ejabberd_hosts:get_hosts(ejabberd)];
+
update_tables(Host, mnesia) ->
gen_storage_migration:migrate_mnesia(
Host, vcard,