+
+void QueueGetHostByNameDone(void *Ctx,
+ int status,
+ int timeouts,
+ struct hostent *hostent)
+{
+ AsyncIO *IO = (AsyncIO *) Ctx;
+
+ IO->DNSQuery->DNSStatus = status;
+ IO->DNSQuery->VParsedDNSReply = hostent;
+ IO->DNSQuery->DNSReplyFree = (FreeDNSReply) ares_free_hostent;
+
+ ev_idle_init(&IO->unwind_stack,
+ IO_postdns_callback);
+ IO->unwind_stack.data = IO;
+ ev_idle_start(event_base, &IO->unwind_stack);
+ CtdlLogPrintf(CTDL_DEBUG, "C-ARES: %s\n", __FUNCTION__);
+}
+
+void QueueGetHostByName(AsyncIO *IO, const char *Hostname, DNSQueryParts *QueryParts, IO_CallBack PostDNS)
+{
+ IO->DNSQuery = QueryParts;
+ IO->DNSQuery->PostDNS = PostDNS;
+
+ InitC_ares_dns(IO);
+
+ ares_gethostbyname(IO->DNSChannel,
+ Hostname,
+ AF_INET6, /* it falls back to ipv4 in doubt... */
+ QueueGetHostByNameDone,
+ IO);
+//get_one_mx_host_ip_done);
+}
+int QueueQuery(ns_type Type, const char *name, AsyncIO *IO, DNSQueryParts *QueryParts, IO_CallBack PostDNS)