anchor.diff:  %% 	{@link //radius/radius_server. radius_server} behaviour process
   %% 	initializes.
   %%
  -init(_Address, _Port) ->
  +init(Address, Port) ->
  +	case global:whereis_name({ocs_disconnect, Address, Port}) of
  +		AcctServer when is_pid(AcctServer) ->
  +			{ok, #state{acct_server = AcctServer}};
  +		undefined ->
  +			{error, acct_server_not_found}
  +	end,
   	{ok, Directory} = application:get_env(ocs, accounting_dir),
   	Log = ?LOGNAME,
   	FileName = Directory ++ "/" ++ atom_to_list(Log),
  
positive.code: 
  -spec request(Address :: inet:ip_address(), Port :: pos_integer(),
  		Packet :: binary(), State :: #state{}) ->
  	{ok, Response :: binary()} | {error, Reason :: term()}.
  %% @doc This callback function is called when a request is received
  %% 	on the port.
  %%
  %% @todo implement disconnect radius accouting if balnce in 0
  request(Address, Port, Packet, #state{} = State)
  		when is_tuple(Address), is_integer(Port), is_binary(Packet) ->
  	case ocs:find_client(Address) of
  		{ok, Secret} ->
  			request(Packet, Secret, State);
  		{error, _Reason} ->
  			{error, ignore}
  	end.
  %% @hidden
  request(<<_Code, Id, _Length:16, _/binary>> = Packet, Secret,
  		#state{log = Log} = _State) ->
  	try
  		#radius{code = ?AccountingRequest, id = Id,
  				authenticator = Authenticator,
  				attributes = BinaryAttributes} = radius:codec(Packet),
  		Attributes = radius_attributes:codec(BinaryAttributes),
  		NasIpAddressV = radius_attributes:find(?NasIpAddress, Attributes),
  		NasIdentifierV = radius_attributes:find(?NasIdentifier, Attributes),
  		InOctets = radius_attributes:find(?AcctInputOctets, Attributes),
  
negative.code: 		{error, not_found} = radius_attributes:find(?ChapPassword, Attributes),
  		{error, not_found} = radius_attributes:find(?ReplyMessage, Attributes),
  		{error, not_found} = radius_attributes:find(?State, Attributes),
  		{ok, AcctSessionId} = radius_attributes:find(?AcctSessionId, Attributes),
  		case disk_log:log(Log, Attributes) of
  			ok ->
  				case ocs:decrement_balance(Subscriber, Usage) of
  					{ok, OverUsed} when OverUsed =< 0 ->
  						gen_server:call(Server,
  							{disconnect_request, Address, Port, SharedSecret, Radius});
  					{ok, Balance} ->
  						{ok, response(Id, Authenticator, SharedSecret, Attributes)}
  				end;
  			{error, _Reason} ->
  				{error, ignore}
  