diff options
Diffstat (limited to 'src/mod_offline_odbc.erl')
-rw-r--r-- | src/mod_offline_odbc.erl | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/src/mod_offline_odbc.erl b/src/mod_offline_odbc.erl index 50a0e53c9..e3ac67104 100644 --- a/src/mod_offline_odbc.erl +++ b/src/mod_offline_odbc.erl @@ -65,14 +65,9 @@ loop(Host) -> ejabberd_odbc:escape( lists:flatten( xml:element_to_string(Packet))), - ["insert into spool(username, xml) " - "values ('", Username, "', '", - XML, - "');"] + odbc_queries:add_spool_sql(Username, XML) end, Msgs), - case catch ejabberd_odbc:sql_transaction( - Host, - Query) of + case catch odbc_queries:add_spool(Host, Query) of {'EXIT', Reason} -> ?ERROR_MSG("~p~n", [Reason]); _ -> @@ -207,15 +202,7 @@ pop_offline_messages(Ls, User, Server) -> LUser = jlib:nodeprep(User), LServer = jlib:nameprep(Server), EUser = ejabberd_odbc:escape(LUser), - F = fun() -> - Result = ejabberd_odbc:sql_query_t( - ["select username, xml from spool where username='", EUser, "'" - " order by seq;"]), - ejabberd_odbc:sql_query_t( - ["delete from spool where username='", EUser, "';"]), - Result - end, - case ejabberd_odbc:sql_transaction(LServer,F) of + case odbc_queries:get_and_del_spool_msg_t(LServer, EUser) of {atomic, {selected, ["username","xml"], Rs}} -> Ls ++ lists:flatmap( fun({_, XML}) -> @@ -245,7 +232,5 @@ remove_user(User, Server) -> LUser = jlib:nodeprep(User), LServer = jlib:nameprep(Server), Username = ejabberd_odbc:escape(LUser), - ejabberd_odbc:sql_query( - LServer, - ["delete from spool where username='", Username, "';"]). + odbc_queries:del_spool_msg(LServer, Username). |