anchor.diff:      lager:info("Init: listening only at 127.0.0.1 (onion)"),
       NewOptions = [ {ip, {127, 0, 0, 1}} | Options ],
       add_options(NewOptions, CaChain, DhParam, ok, IPv6);
  -add_options(Options, CaChain, DhParam, Hostname, {ok, true}) ->
  +add_options(Options, CaChain, DhParam, IsOnion, {ok, true}) ->
       NewOptions =  [ inet6 | Options],
  -    add_options(NewOptions, CaChain, DhParam, Hostname, ok);
  -add_options(Options, CaChain, DhParam, Hostname, {ok, false}) ->
  +    add_options(NewOptions, CaChain, DhParam, IsOnion, ok);
  +add_options(Options, CaChain, DhParam, IsOnion, {ok, false}) ->
       NewOptions =  [ inet | Options],
  -    add_options(NewOptions, CaChain, DhParam, Hostname, ok);
  +    add_options(NewOptions, CaChain, DhParam, IsOnion, ok);
   add_options(Options, _, _, _, _) ->
       Options.
   
   
   
   
  -
  +%% @doc return the local endpoint
  +-spec local_endpoint() -> binary().
   local_endpoint() ->
       watts_http_util:whole_url(watts_http_util:relative_path("oidc")).
   
  -
  +%% @doc gracefully stop the configuration process when done.
  +-spec stop() -> ok.
   stop() ->
       lager:info("Init: done"),
       lager:info("Init: startup took ~p seconds",
  
positive.code:     ok.
  
  
  
  start_web_interface() ->
      lager:info("Init: starting web interface"),
      oidcc_client:register(watts_oidc_client),
  
negative.code:     [].
  
  
  %% @doc create the dispatch list for the web interface.
  %% This is the list of endpoints and the corresponding action to happen,
  %% this could be either calling a function or serving static files.
  %%
  %% The function creates a basic dispatch list for the javascript to be served,
  %% the OpenID connect handling (login) and the api.
  %% Then calls the create_dispatch_list/2 function to configure the dynamic part.
  %% @see create_dispatch_list/2
  -spec create_dispatch_list() -> [tuple()].
  create_dispatch_list() ->
      EpMain = ?CONFIG(ep_main),
      EpOidc = watts_http_util:relative_path("oidc"),
  