diff options
author | Ingela Anderton Andin <[email protected]> | 2014-09-17 17:09:24 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2014-09-24 16:57:54 +0200 |
commit | b98334b677be774d746037ab81e7e724bfeca5eb (patch) | |
tree | 9723ea6bfdddacfed904091bfa6ba44875bfacbd /lib/ssh/src/ssh_transport.erl | |
parent | 743ed31108ee555db18d9833186865e85e34333e (diff) | |
download | otp-b98334b677be774d746037ab81e7e724bfeca5eb.tar.gz otp-b98334b677be774d746037ab81e7e724bfeca5eb.tar.bz2 otp-b98334b677be774d746037ab81e7e724bfeca5eb.zip |
ssh: Gracefully handle incorrect versions
Conflicts:
lib/ssh/test/ssh_connection_SUITE.erl
Diffstat (limited to 'lib/ssh/src/ssh_transport.erl')
-rw-r--r-- | lib/ssh/src/ssh_transport.erl | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/lib/ssh/src/ssh_transport.erl b/lib/ssh/src/ssh_transport.erl index ea05c849b7..76fa776113 100644 --- a/lib/ssh/src/ssh_transport.erl +++ b/lib/ssh/src/ssh_transport.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2004-2013. All Rights Reserved. +%% Copyright Ericsson AB 2004-2014. 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 @@ -82,16 +82,21 @@ format_version({Major,Minor}) -> integer_to_list(Minor) ++ "-Erlang". handle_hello_version(Version) -> - StrVersion = trim_tail(Version), - case string:tokens(Version, "-") of - [_, "2.0" | _] -> - {{2,0}, StrVersion}; - [_, "1.99" | _] -> - {{2,0}, StrVersion}; - [_, "1.3" | _] -> - {{1,3}, StrVersion}; - [_, "1.5" | _] -> - {{1,5}, StrVersion} + try + StrVersion = trim_tail(Version), + case string:tokens(Version, "-") of + [_, "2.0" | _] -> + {{2,0}, StrVersion}; + [_, "1.99" | _] -> + {{2,0}, StrVersion}; + [_, "1.3" | _] -> + {{1,3}, StrVersion}; + [_, "1.5" | _] -> + {{1,5}, StrVersion} + end + catch + error:_ -> + {undefined, "unknown version"} end. key_exchange_init_msg(Ssh0) -> |