From: Holger Weiss Date: Tue, 19 Jul 2016 19:08:13 +0000 (+0200) Subject: mod_mam: Always limit result set page size X-Git-Tag: 16.08~36^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9fcb81dea99dd7f97ed0c970ed44b23a09153be9;p=ejabberd mod_mam: Always limit result set page size Limit the number of messages returned for a given MAM request even if the client didn't specify an RSM set (not just if the client specified an RSM set without a limit). This is still not done for MAM v0.2 requests though, as that version of the XEP doesn't require clients to support RSM. --- diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 10eb098da..f5dc67abc 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -1032,12 +1032,12 @@ filter_by_max(_Msgs, _Junk) -> limit_max(RSM, ?NS_MAM_TMP) -> RSM; % XEP-0313 v0.2 doesn't require clients to support RSM. +limit_max(none, _NS) -> + #rsm_in{max = ?DEF_PAGE_SIZE}; limit_max(#rsm_in{max = Max} = RSM, _NS) when not is_integer(Max) -> RSM#rsm_in{max = ?DEF_PAGE_SIZE}; limit_max(#rsm_in{max = Max} = RSM, _NS) when Max > ?MAX_PAGE_SIZE -> - RSM#rsm_in{max = ?MAX_PAGE_SIZE}; -limit_max(RSM, _NS) -> - RSM. + RSM#rsm_in{max = ?MAX_PAGE_SIZE}. match_interval(Now, Start, End) -> (Now >= Start) and (Now =< End).