anchor.diff:  			   "    ~p~n",
   			   [Reason, erlang:get_stacktrace()]),
       error_logger:error_report(Report).
  -
   
   %%%----------------------------------------------------------------
   not_connected_filter({connection_reply, _Data}) -> true;
  
positive.code: counterpart_versions(NumVsn, StrVsn, #ssh{role = client} = Ssh) ->
      Ssh#ssh{s_vsn = NumVsn , s_version = StrVsn}.
  
  ssh_info([], _State, Acc) ->
      Acc;
  ssh_info([client_version | Rest], #data{ssh_params = #ssh{c_vsn = IntVsn,
  							   c_version = StringVsn}} = State, Acc) ->
      ssh_info(Rest, State, [{client_version, {IntVsn, StringVsn}} | Acc]);
  
  ssh_info([server_version | Rest], #data{ssh_params =#ssh{s_vsn = IntVsn,
  							  s_version = StringVsn}} = State, Acc) ->
      ssh_info(Rest, State, [{server_version, {IntVsn, StringVsn}} | Acc]);
  ssh_info([peer | Rest], #data{ssh_params = #ssh{peer = Peer}} = State, Acc) ->
      ssh_info(Rest, State, [{peer, Peer} | Acc]);
  ssh_info([sockname | Rest], #data{socket = Socket} = State, Acc) ->
      {ok, SockName} = inet:sockname(Socket),
     ssh_info(Rest, State, [{sockname, SockName}|Acc]);
  ssh_info([user | Rest], #data{auth_user = User} = State, Acc) ->
      ssh_info(Rest, State, [{user, User}|Acc]);
  ssh_info([ _ | Rest], State, Acc) ->
      ssh_info(Rest, State, Acc).
  
  
  ssh_channel_info([], _, Acc) ->
      Acc;
  
  ssh_channel_info([recv_window | Rest], #channel{recv_window_size = WinSize,
  						   recv_packet_size = Packsize
  						  } = Channel, Acc) ->
      ssh_channel_info(Rest, Channel, [{recv_window, {{win_size, WinSize},
  						      {packet_size, Packsize}}} | Acc]);
  ssh_channel_info([send_window | Rest], #channel{send_window_size = WinSize,
  						send_packet_size = Packsize
  					       } = Channel, Acc) ->
      ssh_channel_info(Rest, Channel, [{send_window, {{win_size, WinSize},
  						      {packet_size, Packsize}}} | Acc]);
  ssh_channel_info([ _ | Rest], Channel, Acc) ->
      ssh_channel_info(Rest, Channel, Acc).
  
  
  log_error(Reason) ->
      Report = io_lib:format("Erlang ssh connection handler failed with reason:~n"
  			   "    ~p~n"
  
negative.code:     {keep_state_and_data, [{reply,From,Reply}]};
  
  handle_event({call,From}, {connection_info, Options}, _, D) ->
      Info = fold_keys(Options, fun conn_info/2, D),
      {keep_state_and_data, [{reply,From,Info}]};
  
  handle_event({call,From}, {channel_info,ChannelId,Options}, _, D) ->
      case ssh_channel:cache_lookup(cache(D), ChannelId) of
  	#channel{} = Channel ->
  	    Info = fold_keys(Options, fun chann_info/2, Channel),
  	    {keep_state_and_data, [{reply,From,Info}]};
  	undefined ->
  	    {keep_state_and_data, [{reply,From,[]}]}
  