Index: ssh_transport.erl =================================================================== --- ssh_transport.erl (revision 14288) +++ ssh_transport.erl (working copy) @@ -543,6 +543,8 @@ end; {ok,_} -> {error, bad_message}; + continue -> + {error, bad_message}; Error -> Error end. @@ -574,6 +576,8 @@ end; {ok,_} -> {error, bad_message}; + continue -> + {error, bad_message}; Error -> Error end; @@ -618,6 +622,8 @@ end; {ok,_} -> {error, bad_message}; + continue -> + {error, bad_message}; Error -> Error end; @@ -649,6 +655,8 @@ session_id = H }}; {ok,_} -> {error, bad_message}; + continue -> + {error, bad_message}; Error -> Error end; @@ -681,6 +689,8 @@ session_id = H }}; {ok,_} -> {error, bad_message}; + continue -> + {error, bad_message}; Error -> Error end; @@ -708,7 +718,10 @@ {ok,M} when record(M, ssh_msg_kexinit) -> recv_negotiate(S, User, SSH, M, false); - + continue -> + %% ignore and debug messages + inet:setopts(S, [{active, once}]), + ssh_main(S, User, SSH); {ok,M} -> User ! {ssh_msg, self(), M}, inet:setopts(S, [{active, once}]), @@ -1156,11 +1169,9 @@ ?dbg(true, "DEBUG: ~p\n", [M#ssh_msg_debug.message]) end, - inet:setopts(S, [{active, once}]), - recv_msg(S, SSH); + continue; {ok, M} when record(M, ssh_msg_ignore) -> - inet:setopts(S, [{active, once}]), - recv_msg(S, SSH); + continue; {ok, Msg} -> ?dbg(?DBG_MESSAGE, "RECV_MSG: ~70p\n", [Msg]), {ok, Msg};