aboutsummaryrefslogtreecommitdiff
path: root/src/mod_mam_sql.erl
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2017-11-14 22:02:48 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2017-11-14 22:02:48 +0100
commit8376370ae1035ff49e4bbc06f01fd993f1865ad4 (patch)
treefd14af693203a165b9d1327d8809d132abffeed4 /src/mod_mam_sql.erl
parentHalt ejabberd if the top supervisor fails to start (diff)
mod_mam: Don't store from 'sm_receive_packet' hook
Let mod_mam use the 'sm_receive_packet' hook to generate stanza IDs for incoming messages, but not to actually store them. The latter would require additional changes to make sure modules such as mod_privacy and mod_block_strangers continue to affect MAM.
Diffstat (limited to 'src/mod_mam_sql.erl')
-rw-r--r--src/mod_mam_sql.erl10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/mod_mam_sql.erl b/src/mod_mam_sql.erl
index 53ccd94a4..40aa98367 100644
--- a/src/mod_mam_sql.erl
+++ b/src/mod_mam_sql.erl
@@ -30,7 +30,7 @@
%% API
-export([init/2, remove_user/2, remove_room/3, delete_old_messages/3,
- extended_fields/0, store/7, write_prefs/4, get_prefs/2, select/6, export/1]).
+ extended_fields/0, store/8, write_prefs/4, get_prefs/2, select/6, export/1]).
-include_lib("stdlib/include/ms_transform.hrl").
-include("xmpp.hrl").
@@ -84,9 +84,7 @@ delete_old_messages(ServerHost, TimeStamp, Type) ->
extended_fields() ->
[{withtext, <<"">>}].
-store(Pkt, LServer, {LUser, LHost}, Type, Peer, Nick, _Dir) ->
- TSinteger = p1_time_compat:system_time(micro_seconds),
- ID = integer_to_binary(TSinteger),
+store(Pkt, LServer, {LUser, LHost}, Type, Peer, Nick, _Dir, TS) ->
SUser = case Type of
chat -> LUser;
groupchat -> jid:encode({LUser, LHost, <<>>})
@@ -105,7 +103,7 @@ store(Pkt, LServer, {LUser, LHost}, Type, Peer, Nick, _Dir) ->
"archive",
["username=%(SUser)s",
"server_host=%(LServer)s",
- "timestamp=%(TSinteger)d",
+ "timestamp=%(TS)d",
"peer=%(LPeer)s",
"bare_peer=%(BarePeer)s",
"xml=%(XML)s",
@@ -113,7 +111,7 @@ store(Pkt, LServer, {LUser, LHost}, Type, Peer, Nick, _Dir) ->
"kind=%(SType)s",
"nick=%(Nick)s"])) of
{updated, _} ->
- {ok, ID};
+ ok;
Err ->
Err
end.