anchor.diff:    end.
   
   
  +-spec ets_insert_bounded(Tab::ets:tab(), Entry::term()) -> 'true'.
  +%% Insert the row `Entry' into the ETS table `Tab'.  Prevent the
  +%% unbounded growth of the ETS table by clearing it if it grows to
  +%% more than ?MAX_CACHE_SIZE entries.
  +ets_insert_bounded(Tab, Entry) ->
  +  case ets:info(Tab, size) of
  +    N when N >= ?MAX_CACHE_SIZE -> ets:delete_all_objects(Tab);
  +    _                           -> ok
  +  end,
  +  ets:insert(Tab, Entry).
  +
  +
   -define(TEN_E6, 1000000).
   timestamp_add_seconds ({MegaSeconds, Seconds, MicroSeconds}, AddSeconds) ->
     S1 = Seconds + AddSeconds,
  
positive.code: -define(SUCCESS_CACHE_EXTRA_SECONDS, 2).
  -define(MAX_CACHE_SECONDS, (3600 * 24)).
  -define(MIN_CACHE_SECONDS_DEFAULT, 300).
  
  
  -spec lookup(Host::string()) -> tuple() | 'undefined' | string().
  
negative.code:             end;
            SuccessLookup -> SuccessLookup
          end,
        ets_insert_bounded(?MODULE, {Host, IPAddrs, timestamp_add_seconds(Now, TTL)}),
        choose_addr(IPAddrs)
    end.
  
  