anchor.diff:                  bytes_dropped={os:timestamp(), 0},
                   bytes_send={os:timestamp(), 0}}).
   
  --define(REMONITOR, 5000).
   -define(RECONNECT, 1000).
   
   %%%===================================================================
  
positive.code:                     Msg = [<<"vmq-connect">>, <<L:32, NodeName/binary>>],
                      case Transport:send(Socket, Msg) of
                          ok ->
                              self() ! remonitor, %% let remonitor decide if we are reachable
                              State#state{socket=Socket, transport=Transport};
                          {error, Reason} ->
                              lager:warning("can't initiate connect to cluster node ~p due to ~p", [RemoteNode, Reason]),
                              State#state{reachable=false}
                      end;
                  {error, Reason} ->
                      lager:warning("can't connect to cluster node ~p due to ~p", [RemoteNode, Reason]),
                      TRef = reconnect_timer(),
                      State#state{reachable=false, reconnect_tref=TRef}
              end;
          {badrpc, nodedown} ->
              %% we don't scream.. vmq_cluster_mon screams
  
negative.code:             end,
              State#state{pending=[], bytes_send=NewBytesSend};
          {error, Reason} ->
              lager:warning("can't send ~p bytes to ~p due to ~p, reconnect!",
                            [iolist_size(Pending), Node, Reason]),
              State#state{reachable=false, reconnect_tref=reconnect_timer()}
      end.
  
  connect(#state{node=RemoteNode} = State) ->
  