anchor.diff:  		authenticator = RequestAuthenticator, attributes = Attributes},
   		RadiusFsm}, #statedata{eap_id = EapID,
   		session_id = SessionID, secret = Secret,
  -		rx_length = RxLength, rx_buf = RxBuf} = StateData) ->
  +		rx_length = RxLength, rx_buf = RxBuf, ssl_pid = SslPid} = StateData) ->
   	EapMessages = radius_attributes:get_all(?EAPMessage, Attributes),
   	EapMessage = iolist_to_binary(EapMessages),
   	NewStateData = case {radius_attributes:find(?FramedMtu, Attributes),
  
positive.code: 		case ocs_eap_codec:eap_ttls(TtlsData) of
  			#eap_ttls{more = false, message_len = undefined,
  					start = false, data = Data} when RxLength == undefined ->
  				TtlsRecord = iolist_to_binary([RxBuf, Data]),
  				client_hello1(TtlsRecord, StateData),
  				NextStateData = NewStateData#statedata{rx_buf = [],
  						rx_length = undefined},
  				{next_state, server_hello, NextStateData, ?TIMEOUT};
  			#eap_ttls{more = false, message_len = undefined,
  					start = false, data = Data} ->
  				RxLength = iolist_size([RxBuf, Data]),
  				TtlsRecord = iolist_to_binary([RxBuf, Data]),
  				client_hello1(TtlsRecord, StateData),
  				NextStateData = NewStateData#statedata{rx_buf = [],
  								rx_length = undefined},
  				{next_state, server_hello, NextStateData, ?TIMEOUT};
  
negative.code: 					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  			{stop, {shutdown, SessionID}, NewStateData}
  	end.
  
  -spec server_hello(Event :: timeout | term(), StateData :: #statedata{}) ->
  	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  