+ IO->DNSQuery->DNSStatus = 0;
+}
+
+static void
+DNS_timeouttrigger_callback(struct ev_loop *loop, ev_timer *watcher, int revents)
+{
+ AsyncIO *IO = watcher->data;
+ struct timeval tv, MaxTV;
+ struct timeval *NextTV;
+
+ memset(&MaxTV, 0, sizeof(MaxTV));
+ memset(&tv, 0, sizeof(tv));
+ MaxTV.tv_sec = 30;
+ NextTV = ares_timeout(IO->DNSChannel, &MaxTV, &tv);
+
+ if ((NextTV->tv_sec != MaxTV.tv_sec) ||
+ (NextTV->tv_usec != MaxTV.tv_usec))
+ {
+ fd_set readers, writers;
+#ifdef DEBUG_CARES
+ EV_syslog(LOG_DEBUG, "C-ARES: %s Timeout!\n", __FUNCTION__);
+#endif
+ FD_ZERO(&readers);
+ FD_ZERO(&writers);
+ ares_fds(IO->DNSChannel, &readers, &writers);
+ ares_process(IO->DNSChannel, &readers, &writers);
+ }