aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2008-08-25 13:36:34 +0000
committerChristophe Romain <christophe.romain@process-one.net>2008-08-25 13:36:34 +0000
commit11f74201ab5ea6e4535e7e36170eef59c7099e3e (patch)
tree72bd80e6a396a2fd9f4d2462980efb66c81ef8d1
parentPrevent case_clause error when ejabber_odbc:sql_query returns {error, Reason} (diff)
Prevent case_clause error when ejabber_odbc:sql_query returns {error, Reason}
SVN Revision: 1540
-rw-r--r--ChangeLog2
-rw-r--r--src/mod_last_odbc.erl12
-rw-r--r--src/mod_offline_odbc.erl2
3 files changed, 10 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 376f0a48c..80d2478a0 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 <badlop@process-one.net>
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