anchor.diff:          end, {[], [], 0}, ServerList),
       {Pools, Servers}.
   
  +%% @doc This function folds over a list of ip addresses (inet/inet6), if a address with all 0's
  +%% is encountered, all addresses of that type are removed from the result list.
  +%% @end
  +-spec normalize_addresses([{inet:address_family(), inet:ip_address()}]) -> [inet:ip_address()].
   normalize_addresses(IPList) ->
       normalize_addresses(IPList, [] , [], [], []).
   
  
positive.code:             normalize_addresses(Tail, Globalv4, Globalv6, Localv4, [])
      end.
  
  parse_server([], _ProtocolList, _Port, _PoolName, Acc) ->
      Acc;
  parse_server([{IPType, IPAddr} = _IP | Tail], ProtocolList, Port, PoolName, Acc0) ->
  
negative.code: %% IPv6 default: ::1
  %% Build a configuration for the server to enable multiple instances of servers to be started.
  %% End config is something of [{{port, Port}, {listen, IPAddr}, {protocol, Proto}} | ....]
  %% These configs are passed to the event handler and the server supervisors spawns children
  %% using these built configs.
  %% @end
  -spec get_server_configs() -> {Pools :: term(), Servers :: term()}.
  get_server_configs() ->
      ServerList = case application:get_env(erldns, servers) of
                      undefined ->
                          [];
  