anchor.diff:  
   setopts(gen_tcp, Sock, Opts) ->
       inet:setopts(Sock, Opts);
  +setopts(ssl, Sock, Opts) ->
  +    ssl:setopts(Sock, Opts);
   setopts(M, Sock, Opts) ->
       M:setopts(Sock, Opts).
   
  
positive.code: %% # code_change/3
  %% ---------------------------------------------------------------------------
  
  code_change(_, State, _) ->
      {ok, State}.
  
  
negative.code: 
  %% Crash on anything unexpected.
  
  %% tls_handshake/3
  %%
  %% In the case that no tls message is received (eg. the service hasn't
  %% been configured to advertise TLS support) we will simply never ask
  %% for another TCP message, which will force the watchdog to
  %% eventually take us down.
  
  tls_handshake(Type, true, #transport{socket = Sock,
                                       ssl = Opts}
                            = S) ->
      is_list(Opts) orelse ?ERROR({tls, Opts}),
      {ok, SSock} = tls(Type, Sock, Opts),
      S#transport{socket = SSock,
                  module = ssl};
  
  tls_handshake(_, false, S) ->
      S.
  
  tls(connect, Sock, Opts) ->
      ssl:connect(Sock, Opts);
  tls(accept, Sock, Opts) ->
      ssl:ssl_accept(Sock, Opts).
  
  %% recv/2
  %%
  %% Reassemble fragmented messages and extract multple message sent
  