diff options
Diffstat (limited to 'src/mod_announce.erl')
-rw-r--r-- | src/mod_announce.erl | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/mod_announce.erl b/src/mod_announce.erl index 8d72b4bf7..b558897a0 100644 --- a/src/mod_announce.erl +++ b/src/mod_announce.erl @@ -35,7 +35,9 @@ -export([start/2, init/0, stop/1, - export/1, + export/1, + import/1, + import/3, announce/3, send_motd/1, disco_identity/5, @@ -1072,3 +1074,21 @@ export(_Server) -> (_Host, _R) -> [] end}]. + +import(LServer) -> + [{<<"select xml from motd where username='';">>, + fun([XML]) -> + El = xml_stream:parse_element(XML), + #motd{server = LServer, packet = El} + end}, + {<<"select username from motd where xml='';">>, + fun([LUser]) -> + #motd_users{us = {LUser, LServer}} + end}]. + +import(_LServer, mnesia, #motd{} = Motd) -> + mnesia:dirty_write(Motd); +import(_LServer, mnesia, #motd_users{} = Users) -> + mnesia:dirty_write(Users); +import(_, _, _) -> + pass. |