mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-22 16:20:52 +01:00
node_flat_sql: Avoid catch-all clauses for RSM
Explicitly catch invalid <before/> and <after/> timestamps specified by clients in RSM queries, but crash on other errors, rather than silently ignoring those.
This commit is contained in:
parent
4d0503b6b3
commit
c952cc420b
@ -1064,15 +1064,14 @@ rsm_page(Count, Index, Offset, Items) ->
|
||||
last = Last}.
|
||||
|
||||
encode_stamp(Stamp) ->
|
||||
case catch xmpp_util:decode_timestamp(Stamp) of
|
||||
{MS,S,US} -> encode_now({MS,S,US});
|
||||
_ -> Stamp
|
||||
try xmpp_util:decode_timestamp(Stamp) of
|
||||
Now ->
|
||||
encode_now(Now)
|
||||
catch _:{bad_timestamp, _} ->
|
||||
Stamp % We should return a proper error to the client instead.
|
||||
end.
|
||||
decode_stamp(Stamp) ->
|
||||
case catch xmpp_util:encode_timestamp(decode_now(Stamp)) of
|
||||
TimeStamp when is_binary(TimeStamp) -> TimeStamp;
|
||||
_ -> Stamp
|
||||
end.
|
||||
xmpp_util:encode_timestamp(decode_now(Stamp)).
|
||||
|
||||
encode_now({T1, T2, T3}) ->
|
||||
<<(misc:i2l(T1, 6))/binary, ":",
|
||||
|
Loading…
Reference in New Issue
Block a user