aboutsummaryrefslogtreecommitdiff
path: root/src/mod_announce.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_announce.erl')
-rw-r--r--src/mod_announce.erl22
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.