]> granicus.if.org Git - ejabberd/commitdiff
Store persistent MUC room during creation
authorHolger Weiss <holger@zedat.fu-berlin.de>
Tue, 19 Aug 2014 09:12:51 +0000 (11:12 +0200)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Tue, 19 Aug 2014 09:12:51 +0000 (11:12 +0200)
Make sure persistent rooms are stored to the database.  Without this
change, a room got lost if the 'persistent' flag was handed over to
mod_muc:create_room/5 and the server was then restartet before any
activity took place in that room.

src/mod_muc_room.erl

index 3842fde40a1c77bca653e0d8f8a9a9e480de275d..6a2a91d21e354502beefeb5791eec7ade57fe51b 100644 (file)
@@ -127,6 +127,13 @@ init([Host, ServerHost, Access, Room, HistorySize, RoomShaper, Creator, _Nick, D
                                   just_created = true,
                                   room_shaper = Shaper}),
     State1 = set_opts(DefRoomOpts, State),
+    if (State1#state.config)#config.persistent ->
+          mod_muc:store_room(State1#state.server_host,
+                             State1#state.host,
+                             State1#state.room,
+                             make_opts(State1));
+       true -> ok
+    end,
     ?INFO_MSG("Created MUC room ~s@~s by ~s", 
              [Room, Host, jlib:jid_to_string(Creator)]),
     add_to_log(room_existence, created, State1),