anchor.diff:  
   %% clustercc
   
  -clustercc_main() -> nothing_to_do.
  +clustercc_main() ->
  +  {clustercc, Ref, ID} = receive V -> V end,
  +
  +  Node = case node_manager:get() of
  +    undefined -> throw(enoent);
  +    N         -> N
  +  end,
  +  {ok, Socket} = gen_tcp:connect(Node, 3632, []),
  +
  +  TX = fun(Data) ->
  +      gen_tcp:send(Socket, Data)
  +  end,
  +  RX = fun
  +    (Data) when is_binary(Data) ->
  +      ssh_connection:send(Ref, ID, Data);
  +    (Data) when is_list(Data) ->
  +      ssh_connection:send(Ref, ID, list_to_binary(Data))
  +  end,
  +
  +  loop(TX, RX),
  +
  +  ok = ssh_connection:close(Ref, ID),
  +  gen_tcp:close(Socket).
  +
  +loop(TX, RX) ->
  +  receive
  +    {tcp, _, Data} ->
  +      ok = RX(Data),
  +      loop(TX, RX);
  +    {ssh, _, _, Data} ->
  +      ok = TX(Data),
  +      loop(TX, RX);
  +
  +    {tcp_closed, _} -> closed;
  +    {ssh_closed, _} -> closed;
  +
  +    {tcp_error, _, _} -> closed
  +  end.
  
positive.code: 
  terminate(Reason, State) ->
    Node = dict:fetch(node, State),
    exit(Node, Reason),
    prefixed("terminate ssh session with [~w]", [Reason]).
  
  % do nothing
  handle_msg(_, State) -> {ok, State}.
  
  
negative.code: 
      {exec, _, true, _Cmd} ->
        {ok, State};
      {data, ID, _, Data} when is_binary(Data) ->
        Node = dict:fetch(node, State),
        Node ! {ssh, Ref, ID, Data},
        {ok, State};
  
      % don't care following msg
  