anchor.diff:  	    []
       end.
   
  -is_connection_handler(Pid) ->
  -    try
  -	{ssh_connection_handler,init,_} =
  -	    proplists:get_value(
  -	      '$initial_call',
  -	      proplists:get_value(
  -		dictionary,
  -		process_info(Pid, [dictionary])))
  -    of
  -	_ -> true
  -
  -    catch
  -	_:_ ->
  -	    false
  -    end.
  -
  -channels(Pid) ->
  -    case is_connection_handler(Pid) of
  -	true ->
  -	    ssh_connection_handler:info(Pid,all);
  -	false ->
  -	    false
  -    end.
  +%%%================================================================
  +print_spec(_Spec) -> "".
   
   %%%================================================================
   underline(Str, LineChar) ->
  
positive.code:      io_lib:format('This printout is generated ~s. ~n',[datetime()])
      ].
  
  
  print_system({{server,ssh_system_sup,Addr,Port,Profile}, Pid, supervisor, [ssh_system_sup]}) ->
      [io_lib:format(?INDENT"Local: ~s (~p children) Profile ~p~n",
                     [fmt_host_port({Addr,Port}),
                      ssh_acceptor:number_of_connections(Pid),
                      Profile
                     ]),
       lists:map(fun print_subsystem/1, children(Pid))
      ];
  print_system({{client,ssh_system_sup,Addr,Port,Profile}, Pid, supervisor, [ssh_system_sup]}) ->
      [io_lib:format(?INDENT"Local: ~s Profile ~p~n",
                     [fmt_host_port({Addr,Port}),
                      Profile
                     ]),
       lists:map(fun print_subsystem/1, children(Pid))
      ];
  print_system({_, _Pid, worker, [ssh_controller]}) ->
      ""; % io_lib:format(?INDENT"Controller~n",[]);
  print_system(_X) ->
      io_lib:format(?INDENT"nyi system ~p~n",[_X]).
  
  
  
  
  print_subsystem({{ssh_acceptor_sup,_Addr,_Port,_Profile}, _Pid, supervisor, [ssh_acceptor_sup]}) ->
      io_lib:format(?INDENT?INDENT"Acceptor~n",[]);
  print_subsystem({Ref,Pid,supervisor,[ssh_subsystem_sup]}) when is_reference(Ref),
                                                                 is_pid(Pid) ->
      Cs = children(Pid),
      [
       lists:map(
         fun(Sup) ->
                  [print_conn(P) || {undefined,P,worker,[ssh_connection_handler]} <- children(Sup)]
         end,
         [P ||  {_Ref,P,supervisor,[ssh_connection_sup]} <- Cs]),
  
       lists:map(
         fun(Sup) ->
                  [print_ch(M,P) || {_Ref,P,worker,[M]} <- children(Sup),
                                  lists:member(M, [ssh_channel,
                                                   ssh_channel_sup,
                                                   ssh_client_channel,
                                                   ssh_daemon_channel,
                                                   ssh_server_channel
                                                  ])]
         end,
         [P ||  {_Ref,P,supervisor,[ssh_channel_sup]} <- Cs]),
  
       lists:map(
         fun(Sup) ->
                 [io_lib:format(?INDENT?INDENT?INDENT"TCP/IP fwd acceptor: ~p~n", [Pa]) 
                  || {undefined,Pa,worker,[ssh_tcpip_forward_acceptor]} <- children(Sup)]
         end,
         [P ||  {_Ref,P,supervisor,[ssh_tcpip_forward_acceptor_sup]} <- Cs])
      ];
  
  print_subsystem(_X) ->
      io_lib:format(?INDENT?INDENT"nyi subsystem ~p~n",[_X]).
  
  
  print_conn(Pid) ->
      try
  	{{_Local,Remote},StrM} = ssh_connection_handler:get_print_info(Pid),
          io_lib:format(?INDENT?INDENT"Remote: ~s ConnectionRef = ~p ~s~n",[fmt_host_port(Remote),Pid,StrM])
      catch
        	C:E ->
  	    io_lib:format('****print_conn FAILED for ConnPid ~p: ~p:~p~n',[Pid, C, E])
      end.  
          
  
  print_ch(CBmod, Pid) ->
      try
  	{{_ConnManager,ChannelID}, Str} = ssh_server_channel:get_print_info(Pid),
  	io_lib:format(?INDENT?INDENT?INDENT"ch ~p ~p ~p: ~s~n",[ChannelID, Pid, CBmod, Str])
      catch
  	C:E ->
  	    io_lib:format('****print_ch FAILED for ChanPid ~p: ~p:~p~n',[Pid, C, E])
      end.
  
  %%%================================================================
  walk_sups(StartPid) ->
      walk_sups(children(StartPid), _Indent=?inc(0)).
  
  walk_sups([H={_,Pid,_,_}|T], Indent) ->
      [indent(Indent),
       io_lib:format('~200p  ~p is ~s~n',[H,Pid,dead_or_alive(Pid)]),
       case H of
  	 {_,_,supervisor,[ssh_connection_handler]} -> "";
  	 {_,Pid,supervisor,_} -> walk_sups(children(Pid), ?inc(Indent));
  	 _ -> ""
       end,
       walk_sups(T, Indent)
      ];
  walk_sups([], _) ->
      "".
  
  dead_or_alive(Name) when is_atom(Name) ->
      case whereis(Name) of
  	undefined ->
  	    "**UNDEFINED**";
  	Pid ->
  	    dead_or_alive(Pid)
      end;
  dead_or_alive(Pid) when is_pid(Pid) ->
      case process_info(Pid) of
  	undefined -> "**DEAD**";
  	_ -> "alive"
      end.
  
  indent(I) -> io_lib:format('~*c',[I,$ ]).
  
negative.code: 	    [io_lib:nl(),
  	     print_general(),
  	     io_lib:nl(),
  	     underline("Client(s)", $-),
  	     print_sups(client, sshc_sup),
  	     io_lib:nl(),
  	     underline("Daemon(s)", $-),
  	     print_sups(server, sshd_sup),
  	     io_lib:nl()]
      catch
  	_:_ ->
  