diff options
Diffstat (limited to 'src/ejabberd_router.erl')
-rw-r--r-- | src/ejabberd_router.erl | 6 |
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. |