aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_router.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_router.erl')
-rw-r--r--src/ejabberd_router.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ejabberd_router.erl b/src/ejabberd_router.erl
index 4939ae1e8..492beb6d3 100644
--- a/src/ejabberd_router.erl
+++ b/src/ejabberd_router.erl
@@ -424,15 +424,15 @@ balancing_route(From, To, Packet, Rs) ->
Value = erlang:system_time(),
case [R || R <- Rs, node(R#route.pid) == node()] of
[] ->
- R = lists:nth(erlang:phash(Value, length(Rs)), Rs),
+ R = lists:nth(erlang:phash2(Value, length(Rs))+1, Rs),
do_route(Packet, R);
LRs ->
- R = lists:nth(erlang:phash(Value, length(LRs)), LRs),
+ R = lists:nth(erlang:phash2(Value, length(LRs))+1, LRs),
do_route(Packet, R)
end;
Value ->
SRs = lists:ukeysort(#route.local_hint, Rs),
- R = lists:nth(erlang:phash(Value, length(SRs)), SRs),
+ R = lists:nth(erlang:phash2(Value, length(SRs))+1, SRs),
do_route(Packet, R)
end.