anchor.diff:                  reachable=false,
                   pending = [],
                   max_queue_size,
  +                reconnect_tref,
                   bytes_dropped={os:timestamp(), 0},
                   bytes_send={os:timestamp(), 0}}).
   
  
positive.code: 
  internal_flush(#state{pending=[]} = State) -> State;
  internal_flush(#state{pending=Pending, node=Node, transport=Transport,
                        socket=Socket, bytes_send={{M, S, _}, V}} = State) ->
      L = iolist_size(Pending),
      Msg = [<<"vmq-send", L:32>>|lists:reverse(Pending)],
      case Transport:send(Socket, Msg) of
  
negative.code:                     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
              State#state{reachable=false, reconnect_tref=reconnect_timer()};
          E ->
              lager:warning("can't connect to cluster node ~p due to ~p", [RemoteNode, E]),
              State#state{reachable=false, reconnect_tref=reconnect_timer()}
      end.
  
  reconnect_timer() ->
      erlang:send_after(?RECONNECT, self(), reconnect).
  
  
  %% connect_params is called by a RPC
  connect_params(_Node) ->
  