From 5d7f5c3a7913e1dac3cbb3d206f2a4b8ceb592f6 Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Sat, 3 Jan 2004 17:25:21 +0000 Subject: [PATCH] * src/ejabberd_router.erl (do_route/3): Slightly changed behaviour SVN Revision: 195 --- ChangeLog | 4 ++++ src/ejabberd_router.erl | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 271a23a3f..f81cf587e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-01-03 Alexey Shchepin + + * src/ejabberd_router.erl (do_route/3): Slightly changed behaviour + 2004-01-01 Alexey Shchepin * src/ejabberd_sm.erl (do_route/3): Minor fix diff --git a/src/ejabberd_router.erl b/src/ejabberd_router.erl index fcc89375b..74352254d 100644 --- a/src/ejabberd_router.erl +++ b/src/ejabberd_router.erl @@ -80,7 +80,11 @@ do_route(From, To, Packet) -> ?DEBUG("routed to process ~p~n", [Pid]), Pid ! {route, From, To, Packet}; Rs -> - R = lists:nth(erlang:phash(now(), length(Rs)), Rs), + Rs1 = case [R || R <- Rs, node(R#route.pid) == node()] of + [] -> Rs; + LRs -> LRs + end, + R = lists:nth(erlang:phash(now(), length(Rs1)), Rs1), Pid = R#route.pid, ?DEBUG("routed to process ~p~n", [Pid]), Pid ! {route, From, To, Packet}