aboutsummaryrefslogtreecommitdiff
path: root/src/mod_block_strangers.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2017-01-23 19:04:22 +0300
committerAlexey Shchepin <alexey@process-one.net>2017-01-23 19:04:22 +0300
commit8b5e6e4a138a8c686cc392c47f866dcaab485f87 (patch)
tree0c6abf33eec472670f2bca9f6da50562742631b0 /src/mod_block_strangers.erl
parentCheck 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.erl21
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) ->
[].