anchor.diff:  %% ranch:get_port/1 instead.
   %%
   %% @see ssl:listen/2
  --spec listen([{backlog, non_neg_integer()} | {cacerts, [Der::binary()]}
  -	| {cacertfile, string()} | {cert, Der::binary()}
  -	| {certfile, string()} | {ciphers, [ssl:erl_cipher_suite()] | string()}
  -	| {fail_if_no_peer_cert, boolean()}
  -	| {ip, inet:ip_address()} | {key, Der::binary()} | {keyfile, string()}
  -	| {next_protocols_advertised, [binary()]} | {nodelay, boolean()}
  -	| {password, string()} | {port, inet:port_number()}
  -	| {verify, ssl:verify_type()}])
  -	-> {ok, ssl:sslsocket()} | {error, atom()}.
  +-spec listen(opts()) -> {ok, ssl:sslsocket()} | {error, atom()}.
   listen(Opts) ->
   	ranch:require([crypto, public_key, ssl]),
   	true = lists:keymember(cert, 1, Opts)
  
positive.code: -export([peername/1]).
  -export([sockname/1]).
  -export([close/1]).
  
  %% @doc Name of this transport, <em>ssl</em>.
  name() -> ssl.
  
negative.code: 	%% The port in the options takes precedence over the one in the
  	%% first argument.
  	ssl:listen(0, ranch:filter_options(Opts2,
  		[backlog, cacertfile, cacerts, cert, certfile, ciphers,
  			fail_if_no_peer_cert, ip, key, keyfile, next_protocols_advertised,
  			nodelay, password, port, raw, verify],
  		[binary, {active, false}, {packet, raw},
  