diff options
author | Niclas Eklund <[email protected]> | 2011-01-17 15:42:39 +0100 |
---|---|---|
committer | Niclas Eklund <[email protected]> | 2011-01-17 15:42:39 +0100 |
commit | 0fd3723a4d5a13ac381c36c14e5fb513363f68dd (patch) | |
tree | 93a4e06d3ed40779d4c3ac4a14ca156fea067416 /lib/ssh/src | |
parent | 86413606615440a7951b4c62162e2bfb87aa158c (diff) | |
download | otp-0fd3723a4d5a13ac381c36c14e5fb513363f68dd.tar.gz otp-0fd3723a4d5a13ac381c36c14e5fb513363f68dd.tar.bz2 otp-0fd3723a4d5a13ac381c36c14e5fb513363f68dd.zip |
OTP-9031 - SSH did not handle the error reason enetunreach when trying to open a IPv6 connection.
Diffstat (limited to 'lib/ssh/src')
-rw-r--r-- | lib/ssh/src/ssh_acceptor.erl | 6 | ||||
-rw-r--r-- | lib/ssh/src/ssh_transport.erl | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/ssh/src/ssh_acceptor.erl b/lib/ssh/src/ssh_acceptor.erl index 9060626ab3..59fbd24cf5 100644 --- a/lib/ssh/src/ssh_acceptor.erl +++ b/lib/ssh/src/ssh_acceptor.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2010. All Rights Reserved. +%% Copyright Ericsson AB 2008-2011. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -55,6 +55,10 @@ acceptor_init(Parent, Port, Address, SockOpts, Opts, AcceptTimeout) -> do_socket_listen(Callback, Port, Opts) -> case Callback:listen(Port, Opts) of + {error, nxdomain} -> + Callback:listen(Port, lists:delete(inet6, Opts)); + {error, enetunreach} -> + Callback:listen(Port, lists:delete(inet6, Opts)); {error, eafnosupport} -> Callback:listen(Port, lists:delete(inet6, Opts)); Other -> diff --git a/lib/ssh/src/ssh_transport.erl b/lib/ssh/src/ssh_transport.erl index e79ccdda0c..de3e29e2f1 100644 --- a/lib/ssh/src/ssh_transport.erl +++ b/lib/ssh/src/ssh_transport.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2004-2010. All Rights Reserved. +%% Copyright Ericsson AB 2004-2011. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -169,6 +169,8 @@ do_connect(Callback, Address, Port, SocketOpts, Timeout) -> Callback:connect(Address, Port, lists:delete(inet6, Opts), Timeout); {error, eafnosupport} -> Callback:connect(Address, Port, lists:delete(inet6, Opts), Timeout); + {error, enetunreach} -> + Callback:connect(Address, Port, lists:delete(inet6, Opts), Timeout); Other -> Other end. |