diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-03-12 14:10:45 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-03-12 14:10:45 +0000 |
| commit | 3008f907568cd3441b0013b33f0366612e3c2e5a (patch) | |
| tree | fc874c46f338a67b3a235d722173e0159276f375 | |
| parent | 0502a0ba05691bcaef29633d7727f53d8c171e7d (diff) | |
| download | rabbitmq-server-git-3008f907568cd3441b0013b33f0366612e3c2e5a.tar.gz | |
Slightly cleaner than iterating through families.
| -rw-r--r-- | src/rabbit_nodes.erl | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/rabbit_nodes.erl b/src/rabbit_nodes.erl index 3339469df1..28fcaa521f 100644 --- a/src/rabbit_nodes.erl +++ b/src/rabbit_nodes.erl @@ -110,14 +110,16 @@ diagnostics_node0(Name, Host, NamePorts) -> end. diagnose_connect(Host, Port) -> - lists:foldl(fun (_Fam, ok) -> ok; - (Fam, _) -> case gen_tcp:connect( - Host, Port, [Fam], 5000) of - {ok, Socket} -> gen_tcp:close(Socket), - ok; - {error, _} = E -> E - end - end, undefined, [inet6, inet]). + case inet:gethostbyname(Host) of + {ok, #hostent{h_addrtype = Family}} -> + case gen_tcp:connect(Host, Port, [Family], 5000) of + {ok, Socket} -> gen_tcp:close(Socket), + ok; + {error, _} = E -> E + end; + {error, _} = E -> + E + end. make({Prefix, Suffix}) -> list_to_atom(lists:append([Prefix, "@", Suffix])); make(NodeStr) -> make(parts(NodeStr)). |
