From 7a107c02a524a31a766c51bf69292405612b579e Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 2 May 2019 20:22:46 +0200 Subject: [PATCH] Store imported room in the correct ServerHost (#2874) --- src/prosody2ejabberd.erl | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/prosody2ejabberd.erl b/src/prosody2ejabberd.erl index 3fc3cc8b5..6eb5689c1 100644 --- a/src/prosody2ejabberd.erl +++ b/src/prosody2ejabberd.erl @@ -198,7 +198,7 @@ convert_data(_Host, "config", _User, [Data]) -> RoomCfg = convert_room_config(Data), case proplists:get_bool(<<"persistent">>, Config) of true when RoomJID /= error -> - mod_muc:store_room(ejabberd_config:get_myname(), RoomJID#jid.lserver, + mod_muc:store_room(find_serverhost(RoomJID#jid.lserver), RoomJID#jid.lserver, RoomJID#jid.luser, RoomCfg); _ -> ok @@ -522,6 +522,19 @@ el_to_offline_msg(LUser, LServer, #xmlel{attrs = Attrs} = El) -> [] end. +find_serverhost(Host) -> + [ServerHost] = + lists:filter( + fun(ServerHost) -> + case gen_mod:is_loaded(ServerHost, mod_muc) of + true -> + Host == gen_mod:get_module_opt_host(ServerHost, mod_muc, <<"conference.@HOST@">>); + false -> + false + end + end, ejabberd_config:get_myhosts()), + ServerHost. + deserialize(L) -> deserialize(L, #xmlel{}, []).