anchor.diff:  			send_response(EapPacket, ?AccessChallenge,
   					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
   			NewStateData = StateData#statedata{eap_id = NewEapID, tx_buf = []},
  -			{next_state, handle_peer, NewStateData, ?TIMEOUT}
  +			{next_state, client_hello, NewStateData, ?TIMEOUT}
   	end.
   
   -spec handle_event(Event :: term(), StateName :: atom(),
  
positive.code: 					identifier = EapID, data = EapData},
  			send_response(EapPacket, ?AccessChallenge,
  					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  			{next_state, handle_peer, NewStateData, ?TIMEOUT}
  	end.
  
  -spec handle_peer(Event :: timeout | term(), StateData :: #statedata{}) ->
  	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{},
  		Timeout :: non_neg_integer() | infinity}
  		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{}, hibernate}
  		| {stop, Reason :: normal | term(), NewStateData :: #statedata{}}.
  %% @doc Handle events sent with {@link //stdlib/gen_fsm:send_event/2.
  %%		gen_fsm:send_event/2} in the <b>handle_peer</b> state.
  %% @@see //stdlib/gen_fsm:StateName/2
  %% @private
  %%
  handle_peer(timeout, #statedata{session_id = SessionID} = StateData) ->
  	{stop, {shutdown, SessionID}, StateData};
  handle_peer({ssl_setopts, Options}, StateData) ->
  	NewStateData = StateData#statedata{socket_options = Options},
  	{next_state, handle_peer, NewStateData, ?TIMEOUT};
  handle_peer({#radius{code = ?AccessRequest, id = RadiusID,
  		authenticator = RequestAuthenticator, attributes = Attributes},
  		RadiusFsm}, #statedata{eap_id = EapID, ssl_pid = SslPid,
  		session_id = SessionID, secret = Secret,
  		rx_length = RxLength, rx_buf = RxBuf} = StateData) ->
  	EapMessages = radius_attributes:get_all(?EAPMessage, Attributes),
  	EapMessage = iolist_to_binary(EapMessages),
  	NewStateData = case {radius_attributes:find(?FramedMtu, Attributes),
  			radius_attributes:find(?NasPortType, Attributes)} of
  		{{ok, MTU}, {ok, 19}} when MTU < 1496 -> % 802.11
  			StateData#statedata{max_size = MTU - 4,
  					radius_fsm = RadiusFsm, radius_id = RadiusID,
  					req_auth = RequestAuthenticator};
  
negative.code: 					send_response(NewEapPacket, ?AccessChallenge,
  							RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  					NextStateData = NewStateData#statedata{eap_id = NewEapID},
  					{next_state, client_hello, NextStateData, ?TIMEOUT};
  				#eap_packet{code = request, identifier = NewEapID} ->
  					NewEapPacket = #eap_packet{code = response, type = ?LegacyNak,
  							identifier = NewEapID, data = <<0>>},
  