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