anchor.diff:  	NasId = atom_to_list(node()),
   	AnonymousName = "DonaldTrump",
   	MAC = "dd:ee:ff:aa:bb:cc",
  -	send1(Socket, Address, Port, Secret, NasId, MAC, AnonymousName, Data).
  +	send1(ClientPid, Socket, Address, Port, Secret, NasId, MAC, AnonymousName, Data).
   %% @hidden
  -send1(Socket, Address, Port, Secret, NasId, MAC, UserName,
  +send1(ClientPid, Socket, Address, Port, Secret, NasId, MAC, UserName,
   			[<<?Handshake, _:32>>, [[?ClientHello | _] | _]] = Data) ->
   	RadId = 10, EapId = 3,
   	Auth = radius:authenticator(),
   	client_hello(Socket, Address, Port, Auth,
   			RadId, EapId, Secret, NasId, MAC, UserName, Data),
  -	server_hello(Socket, Address, Port, Auth, RadId, Secret).
  +	server_hello(ClientPid, Socket, Address, Port, Auth, RadId, Secret).
   
   -spec controlling_process(ClientPid, Pid) ->
   	ok | {error, Reason} when
  
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: 		Reason :: term().
  %% @doc Sets one or more options for an EAP session.
  setopts(ClientPid, Options) when is_pid(ClientPid) -> 
  	case proplists:get_value(active, Options) of
  		undefined ->
  			ok;
  