anchor.diff:  -export([send/2, controlling_process/2,
   		shutdown/2, close/1, connect/4]).
   %% export public API
  --export([ssl_connect/3, deliver/3]).
  +-export([ssl_connect/3, deliver/1]).
   
   -export_type([listen_option/0, eap_option/0]).
   
  
positive.code: 	Options :: [term()],
  	SslSocket :: pid(),
  	Reason :: term().
  %% @doc Opens an SSL connection to Host, Port.
  ssl_connect(Address, Port, Options) ->
  	ssl:connect(Address, Port, [?cb_info | Options]).
  
  -spec deliver(SslPid, ClientPid, Data) ->
  	ok when
  		SslPid :: pid(),
  		ClientPid :: pid(),
  		Data :: iodata().
  %% @doc Deliver received EAP-TTLS payload to SSL.
  deliver(SslPid, ClientPid, Data) ->
  	SslPid ! {eap_ttls, ClientPid, iolist_to_binary(Data)},
  	ok.
  
  %%----------------------------------------------------------------------
  
negative.code: 	access_request(Socket, Address, Port, NasId,
  			AnonymousName, Secret, MAC, ReqAuth,RadId, EapMessages).
  
  server_hello(ClientPid, Socket, Address, Port, ReqAuth, RadId, Secret) ->
  	EapMsg = access_challenge(Socket, Address, Port,
  			Secret, RadId, ReqAuth),
  	#eap_packet{code = request, type = ?TTLS,
  			identifier = 4, data = TtlsMsg} = ocs_eap_codec:eap_packet(EapMsg),
  	#eap_ttls{data = TtlsData} = ocs_eap_codec:eap_ttls(TtlsMsg),
  	deliver(TtlsData).
  
  eap_fragment(<<Chunk:253/binary, Rest/binary>>, RadiusAttributes) ->
  	AttributList = radius_attributes:add(?EAPMessage, Chunk,
  