anchor.diff:  			{error, Reason}
   	end.
   
  +-type acct_event() :: {
  +		TS :: pos_integer(), % posix time in milliseconds
  +		N :: pos_integer(), % unique number
  +		Protocol :: radius | diameter,
  +		Node :: atom(),
  +		Server :: {inet:ip_address(), inet:port_number()},
  +		Attributes :: radius_attributes:attributes()}.
  +
   -spec acct_log(Protocol, Server, Type, Attributes) -> Result
   	when
   		Protocol :: radius | diameter,
  
positive.code: 
  %% export the ocs_log public API
  -export([acct_open/0, acct_log/4, acct_close/0,
  		acct_query/4, acct_query/5,
  		auth_open/0, auth_log/5, auth_log/6, auth_close/0,
  		auth_query/5, auth_query/6,
  		ipdr_log/3, ipdr_file/2, get_range/3, last/2,
  		dump_file/2, http_file/2, httpd_logname/1,
  		date/1, iso8601/1]).
  
  %% export the ocs_log private API
  -export([]).
  
  -include("ocs_log.hrl").
  -include_lib("radius/include/radius.hrl").
  
negative.code: 	end.
  %% @hidden
  acct_query1(_Start, _End, _Protocol, _Types, _AttrsMatch, eof, Acc) ->
  	{eof, lists:reverse(Acc)};
  acct_query1(_Start, _End, _Protocol, _Types, _AttrsMatch, {error, Reason}, _Acc) ->
  	{error, Reason};
  acct_query1(Start, End, '_', '_', AttrsMatch,
  		{Cont, [{TS, _, _, _, _, _, _} | _] = Chunk}, Acc)
  		when TS >= Start, TS =< End ->
  	acct_query2(Start, End, '_', '_', AttrsMatch,
  			{Cont, Chunk}, Acc, AttrsMatch);
  acct_query1(Start, End, Protocol, '_', AttrsMatch,
  		{Cont, [{TS, _, Protocol, _, _, _, _} | _] = Chunk}, Acc)
  		when TS >= Start, TS =< End ->
  