anchor.diff:      getopts({?HTTP_DEFAULT_SSL_KIND, SSLConfig}, Socket, Options);
   
   getopts({essl, _}, Socket, Options) ->
  -    ?hlrt("essl getopts", [{socket, Socket}, {options, Options}]),
       getopts_ssl(Socket, Options).
   
   getopts_ssl(Socket, Options) ->
  
positive.code: -include_lib("inets/src/inets_app/inets_internal.hrl").
  -include("http_internal.hrl").
  
  -define(SERVICE, httpl).
  -define(hlri(Label, Content), ?report_important(Label, ?SERVICE, Content)).
  -define(hlrv(Label, Content), ?report_verbose(Label,   ?SERVICE, Content)).
  -define(hlrd(Label, Content), ?report_debug(Label,     ?SERVICE, Content)).
  -define(hlrt(Label, Content), ?report_trace(Label,     ?SERVICE, Content)).
  
  
  %%%=========================================================================
  %%%  Internal application API
  
negative.code: 
  %% -- negotiate --
  negotiate(ip_comm,_,_) ->
      ok;
  negotiate({ssl, SSLConfig}, Socket, Timeout) ->
      negotiate({?HTTP_DEFAULT_SSL_KIND, SSLConfig}, Socket, Timeout);
  negotiate({essl, _}, Socket, Timeout) ->
      negotiate_ssl(Socket, Timeout).
  
  negotiate_ssl(Socket, Timeout) ->
      case ssl:ssl_accept(Socket, Timeout) of
  	ok ->
  	    ok;
  	{error, Reason} ->
  	    %% Look for "valid" error reasons
  	    ValidReasons = [timeout, econnreset, esslaccept, esslerrssl], 
  	    case lists:member(Reason, ValidReasons) of
  