anchor.diff:  %% @doc Handle a received RADIUS Accounting Request packet.
   %% @private
   accounting_request(Address, _Port, Secret, Radius,
  -		{_RadiusFsm, _Tag} = _From, #state{handlers = _Handlers,
  +		{_RadiusFsm, _Tag} = _From, #state{handlers = _Handlers, disc_id = Id,
   		log = Log, disc_sup = DiscSup} = State) ->
   	try 
   		#radius{code = ?AccountingRequest, id = Id, attributes = Attributes,
  
positive.code: 		log :: term(), 
  		handlers = gb_trees:empty() :: gb_trees:tree(Key ::
  				({NAS :: string() | inet:ip_address(), Port :: string(),
  				Peer :: string()}), Value :: (Fsm :: pid()))}).
  
  -define(LOGNAME, radius_acct).
  
  
negative.code: 		{error, not_found} = radius_attributes:find(?State, Attributes),
  		{ok, AcctSessionId} = radius_attributes:find(?AcctSessionId, Attributes),
  		ok = disk_log:log(Log, Attributes),
  		NewState = case ocs:decrement_balance(Subscriber, Usage) of
  			{ok, OverUsed} when OverUsed =< 0 ->
  				case supervisor:start_child(DiscSup, [[Address, NasID,
  						Subscriber, AcctSessionId, Secret, Attributes, Id], []]) of
  					{ok, _Child} ->
  						NewId = Id + 1,
  						State#state{disc_id = NewId};
  					{error, Reason} ->
  						error_logger:error_report(["Failed to initiate session disconnect function",
  							{error, Reason}]),
  						State
  				end;
  			{ok, _SufficientBalance} ->
  				State	
  		end,
  		{reply, {ok, response(Id, Authenticator, Secret)}, NewState}
  	catch
  		_:_ ->
  			{reply, {error, ignore}, State}
  