int length, family;
char address_b[sizeof(struct in6_addr)];
int optmask = 0;
+ int rfd, wfd;
optmask |= ARES_OPT_SOCK_STATE_CB;
IO->DNSOptions.sock_state_cb = SockStateCb;
return 0;
}
ares_query(IO->DNSChannel, name, ns_c_in, Type, QueryCb, IO);
+ ares_fds(IO->DNSChannel, &rfd, &wfd);
return 1;
}
static void DNS_recv_callback(struct ev_loop *loop, ev_io *watcher, int revents)
{
+ AsyncIO *IO = watcher->data;
+
+ ares_process_fd(IO->DNSChannel, IO->sock, 0);
}
static void DNS_send_callback(struct ev_loop *loop, ev_io *watcher, int revents)
{
+ AsyncIO *IO = watcher->data;
+
+ ares_process_fd(IO->DNSChannel, 0, IO->sock);
}
void SockStateCb(void *data, int sock, int read, int write)