diff options
author | Alexey Shchepin <alexey@process-one.net> | 2017-01-23 19:04:22 +0300 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2017-01-23 19:04:22 +0300 |
commit | 8b5e6e4a138a8c686cc392c47f866dcaab485f87 (patch) | |
tree | 0c6abf33eec472670f2bca9f6da50562742631b0 /src/mod_block_strangers.erl | |
parent | Check message subject in mod_block_strangers (diff) |
Compatibility with R17 in mod_block_strangers
Diffstat (limited to 'src/mod_block_strangers.erl')
-rw-r--r-- | src/mod_block_strangers.erl | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/mod_block_strangers.erl b/src/mod_block_strangers.erl index 383848724..56fddd093 100644 --- a/src/mod_block_strangers.erl +++ b/src/mod_block_strangers.erl @@ -92,11 +92,30 @@ filter_packet(Acc) -> Acc. sets_bare_member({U, S, <<"">>} = LBJID, Set) -> - case ?SETS:next(?SETS:iterator_from(LBJID, Set)) of + case ?SETS:next(sets_iterator_from(LBJID, Set)) of {{U, S, _}, _} -> true; _ -> false end. +-ifdef(GB_SETS_ITERATOR_FROM). +sets_iterator_from(Element, Set) -> + ?SETS:iterator_from(Element, Set). +-else. +%% Copied from gb_sets.erl +%% TODO: Remove after dropping R17 support +sets_iterator_from(S, {_, T}) -> + iterator_from(S, T, []). + +iterator_from(S, {K, _, T}, As) when K < S -> + iterator_from(S, T, As); +iterator_from(_, {_, nil, _} = T, As) -> + [T | As]; +iterator_from(S, {_, L, _} = T, As) -> + iterator_from(S, L, [T | As]); +iterator_from(_, nil, As) -> + As. +-endif. + depends(_Host, _Opts) -> []. |