anchor.diff:  %% API Function Exports
   %% ------------------------------------------------------------------
   
  --export([start_link/2,start/2,udp/2,set_tcp/5,send/5,json_to_envelope/1]).
  +-export([start_link/2,start/2,udp/2,set_tcp/5,send/5,respond/4,json_to_envelope/1]).
   
   %% ------------------------------------------------------------------
   %% gen_server Function Exports
  
positive.code: 			{What,Why}
  	end.
  
  confirm_connect_message(Message, State) ->
  	#state{ssl_socket = SSLSocket, tcp_socket = TCPSocket, udp_socket = UDPSocket, client_info = ClientInfo} = State,
  	% Send response over SSL transport
  	#envelope{type = request, channel = <<"control">>, id = MsgID} = Message,
  	ConnectRep = {struct, [
  		{confirm, true}
  	]},
  	Response = #envelope{type = response, channel = <<"control">>, id = MsgID, contents = ConnectRep},
  	OutBin = wrap_for_send(Response),
  	SendRes = ssl:send(SSLSocket, OutBin),
  	?debug("Connect response ssl:send result:  ~p", [SendRes]),
  	?info("TCPSocket, UDPSocket: ~p, ~p", [TCPSocket, UDPSocket]),
  
negative.code: 
  send(Pid, Socket, Type, Channel, Json) when Socket == udp; Socket == ssl; Socket == tcp ->
  	gen_server:cast(Pid, {send, Socket, Type, Channel, Json}).
  
  -spec(respond/4 :: (Pid :: pid(), Socket :: 'udp' | 'ssl' | 'tcp', #envelope{}, Json :: json()) -> 'ok').
  respond(Pid, Socket, #envelope{type = request} = Message, Json) when Socket == udp; Socket == ssl; Socket == tcp ->
  	#envelope{channel = Channel, id = MsgID} = Message,
  	gen_server:cast(Pid, {send, Socket, {response, MsgID}, Channel, Json}).
  
  %% ------------------------------------------------------------------
  %% gen_server Function Definitions
  