aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mod_disco.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mod_disco.erl b/src/mod_disco.erl
index 084b39da8..769dc0416 100644
--- a/src/mod_disco.erl
+++ b/src/mod_disco.erl
@@ -344,9 +344,17 @@ get_local_items(_Host, _, _, _) ->
get_vh_services(Host) ->
- DotHost = "." ++ Host,
+ Hosts = lists:sort(fun(H1, H2) -> length(H1) >= length(H2) end, ?MYHOSTS),
lists:filter(fun(H) ->
- lists:suffix(DotHost, H)
+ case lists:dropwhile(
+ fun(VH) ->
+ not lists:suffix("." ++ VH, H)
+ end, Hosts) of
+ [] ->
+ false;
+ [VH | _] ->
+ VH == Host
+ end
end, ejabberd_router:dirty_get_all_routes()).
get_online_vh_users(Host) ->