- /** Portable random number generator, generates
- * its random number from the ircd stats counters,
- * effective user id, time of day and the rollover
- * counter (currid)
+ /**
+ * Turn an in6_addr into a .ip6.arpa domain
+ */
+ static void MakeIP6Int(char* query, const in6_addr *ip);
+
+ /**
+ * Clean out all dns resolvers owned by a particular
+ * module, to make unloading a module safe if there
+ * are dns requests currently in progress.
+ */
+ void CleanResolvers(Module* module);
+
+ /** Return the cached value of an IP or hostname
+ * @param source An IP or hostname to find in the cache.
+ * @return A pointer to a CachedQuery if the item exists,
+ * otherwise NULL.
+ */
+ CachedQuery* GetCache(const std::string &source);
+
+ /** Delete a cached item from the DNS cache.
+ * @param source An IP or hostname to remove
+ */
+ void DelCache(const std::string &source);
+
+ /** Clear all items from the DNS cache immediately.
+ */
+ int ClearCache();
+
+ /** Prune the DNS cache, e.g. remove all expired
+ * items and rehash the cache buckets, but leave
+ * items in the hash which are still valid.