%% -*- erlang -*-
%% @doc Domain this listener is listening to.
{mapping, "mdns.server.domain", "mdns_server_lib.domain",
 [{default, ".local"},
  {datatype, string}]}.

%% @doc The service to listen to, it will be prepended to the domain.
{mapping, "mdns.server.service", "mdns_server_lib.service",
 [{default, "generic"},
  {level, advanced},
  {datatype, string}]}.

%% @doc The TCP endpoint that will be broadcasted.
{mapping, "mdns.server.endpoint", "mdns_server_lib.listener",
 [{default, {"127.0.0.1", 4223}},
  {datatype, ip}]}.

%% @doc The livetime of a broadcast, alsot he rebroadcast frequency
{mapping, "mdns.server.ttl", "mdns_server_lib.ttl",
 [{default, 120},
  {datatype, {duration, s}}]}.

%% @doc The handler that gets called for a tcp connections.
{mapping, "mdns.server.handler", "mdns_server_lib.handler",
 [{default, "mdns_server_lib_debug_handler"},
  {level, advanced},
  {datatype, string}]}.

{translation,
 "mdns_server_lib.handler",
 fun(Conf) ->
         Setting = cuttlefish:conf_get("mdns.server.handler", Conf),
         list_to_atom(Setting)
 end
}.

%% @doc The service to listen to, it will be prepended to the domain.
{mapping, "mdns.server", "mdns_server_lib.disabled",
 [{default, enabled},
  {level, advanced},
  {datatype, {enum, [enabled, disabled]}}]}.

{translation,
 "mdns_server_lib.disabled",
 fun(Conf) ->
         case cuttlefish:conf_get("mdns.server", Conf) of
             enabled ->
                 false;
             disabled ->
                 true
         end
 end
}.
