From 28c34a844a676db5d76d2525fee385c66d63d1b9 Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Mon, 25 Aug 2008 13:34:53 +0000 Subject: [PATCH] Prevent case_clause error when ejabber_odbc:sql_query returns {error, Reason} SVN Revision: 1539 --- ChangeLog | 2 ++ src/mod_last_odbc.erl | 12 ++++++------ src/mod_offline_odbc.erl | 2 ++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 72695b9d0..90d0a89dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ * src/mod_privacy_odbc.erl: Prevent case_clause error when ejabber_odbc:sql_query returns {error, Reason} * src/mod_vcard_odbc.erl: Likewise + * src/mod_last_odbc.erl: Likewise + * src/mod_offline_odbc.erl: Likewise 2008-08-25 Badlop diff --git a/src/mod_last_odbc.erl b/src/mod_last_odbc.erl index e0b0f7761..9253c09e1 100644 --- a/src/mod_last_odbc.erl +++ b/src/mod_last_odbc.erl @@ -114,8 +114,6 @@ process_sm_iq(From, To, #iq{type = Type, sub_el = SubEl} = IQ) -> get_last(IQ, SubEl, LUser, LServer) -> Username = ejabberd_odbc:escape(LUser), case catch odbc_queries:get_last(LServer, Username) of - {'EXIT', _Reason} -> - IQ#iq{type = error, sub_el = [SubEl, ?ERR_INTERNAL_SERVER_ERROR]}; {selected, ["seconds","state"], []} -> IQ#iq{type = error, sub_el = [SubEl, ?ERR_SERVICE_UNAVAILABLE]}; {selected, ["seconds","state"], [{STimeStamp, Status}]} -> @@ -132,7 +130,9 @@ get_last(IQ, SubEl, LUser, LServer) -> _ -> IQ#iq{type = error, sub_el = [SubEl, ?ERR_INTERNAL_SERVER_ERROR]} - end + end; + _ -> + IQ#iq{type = error, sub_el = [SubEl, ?ERR_INTERNAL_SERVER_ERROR]} end. on_presence_update(User, Server, _Resource, Status) -> @@ -152,8 +152,6 @@ store_last_info(User, Server, TimeStamp, Status) -> get_last_info(LUser, LServer) -> Username = ejabberd_odbc:escape(LUser), case catch odbc_queries:get_last(LServer, Username) of - {'EXIT', _Reason} -> - not_found; {selected, ["seconds","state"], []} -> not_found; {selected, ["seconds","state"], [{STimeStamp, Status}]} -> @@ -162,7 +160,9 @@ get_last_info(LUser, LServer) -> {ok, TimeStamp, Status}; _ -> not_found - end + end; + _ -> + not_found end. remove_user(User, Server) -> diff --git a/src/mod_offline_odbc.erl b/src/mod_offline_odbc.erl index c1b8b41fc..80452d8af 100644 --- a/src/mod_offline_odbc.erl +++ b/src/mod_offline_odbc.erl @@ -116,6 +116,8 @@ loop(Host, MaxOfflineMsgs) -> case catch odbc_queries:add_spool(Host, Query) of {'EXIT', Reason} -> ?ERROR_MSG("~p~n", [Reason]); + {error, Reason} -> + ?ERROR_MSG("~p~n", [Reason]); _ -> ok end