anchor.diff:  %% @hidden
   request(Caps, none, Request, State) when is_record(Request, diameter_nas_app_AAR) ->
   	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
  -	request1(OHost, ORealm, Request, State);
  +	request1(none, OHost, ORealm, Request, State);
  +request(Caps, <<_:32, ?Identity, Identity/binary>>, Request, State)
  +		when is_record(Request, diameter_eap_app_DER) ->
  +	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
  +	request1({identity, Identity}, OHost, ORealm, Request, State);
   request(Caps, none, Request, State) when is_record(Request, diameter_nas_app_STR) ->
   	#diameter_caps{origin_host = {OHost,_}, origin_realm = {ORealm,_}} = Caps,
   	SessionId = Request#diameter_nas_app_STR.'Session-Id',
  
positive.code: %% @see //stdlib/gen_server:init/1
  %% @private
  %%
  init([AuthPortSup, Address, Port, _Options]) ->
  	State = #state{auth_port_sup = AuthPortSup, address = Address,
  			port = Port},
  	case ocs_log:auth_open() of
  		ok ->
  			process_flag(trap_exit, true),
  
negative.code: 			{reply, Answer, State}
  	end.
  %% @hidden
  request1(EapType, OHost, ORealm, Request, #state{handlers = Handlers,
  		method_prefer = MethodPrefer, method_order = _MethodOrder} = State) ->
  	{SessionId, AuthType} = get_attibutes(Request),
  	try
  		case gb_trees:lookup(SessionId, Handlers) of
  			none ->
  				case EapType of
  					{_, _Identity} when MethodPrefer == pwd ->
  						PwdSup = State#state.pwd_sup,
  						{Fsm, NewState} = start_fsm(PwdSup, 5, SessionId, AuthType, OHost,
  								ORealm, [], State),
  						Answer = gen_fsm:sync_send_event(Fsm, diameter_request),
  						{reply, Answer, NewState};
  					none ->
  						#diameter_nas_app_AAR{'User-Name' = [UserName], 'User-Password' = [Password]} = Request,
  						SimpleAuthSup = State#state.simple_auth_sup,
  						case {UserName, Password} of
  							{UserName, Password} when (UserName /= undefined andalso
  									Password /= undefined) ->
  								{Fsm, NewState} = start_fsm(SimpleAuthSup, 1, SessionId, AuthType,
  										OHost, ORealm, [UserName, Password], State),
  								Answer = gen_fsm:sync_send_all_state_event(Fsm, Request),
  								{reply, Answer, NewState};
  							_ ->
  								Answer = #diameter_nas_app_AAA{
  										'Result-Code' = ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  										'Origin-Host' = OHost, 'Origin-Realm' = ORealm,
  										'Session-Id' = SessionId},
  								{reply, Answer, State}
  							end
  					end;
  			{value, _Fsm} ->
  				Answer = #diameter_nas_app_AAA{'Session-Id' = SessionId,
  						'Auth-Application-Id' = 1, 'Auth-Request-Type' = AuthType,
  						'Result-Code' = ?'DIAMETER_BASE_RESULT-CODE_SUCCESS',
  						'Origin-Host' = OHost, 'Origin-Realm' = ORealm },
  				{reply, Answer, State}
  