summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-03-12 14:10:45 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-03-12 14:10:45 +0000
commit3008f907568cd3441b0013b33f0366612e3c2e5a (patch)
treefc874c46f338a67b3a235d722173e0159276f375
parent0502a0ba05691bcaef29633d7727f53d8c171e7d (diff)
downloadrabbitmq-server-git-3008f907568cd3441b0013b33f0366612e3c2e5a.tar.gz
Slightly cleaner than iterating through families.
-rw-r--r--src/rabbit_nodes.erl18
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)).