Hi all
I am trying to add GNU adns to my project,
But ands thew an error "Assertion `ads->udpsocket >= 0' failed" after running for 10 minuntes.
Anybody here met this before?
I use ands as follow:
bool DnsResolver::resolve(const char* domain, char ip[]) {
bool result = false;
adns_state adns;
adns_query query;
adns_answer *answer;
adns_initflags flags = adns_initflags(adns_if_nosigpipe
| adns_if_noerrprint);
// adns_initflags flags = adns_if_none//adns_if_noenv;
adns_init(&adns, flags, NULL);
adns_submit(adns, domain, adns_r_a,
(adns_queryflags) (adns_qf_quoteok_cname | adns_qf_cname_loose),
NULL, &query);
// adns_submit(adns, domain, adns_r_a/*adns_r_none*/,
// (adns_queryflags) (adns_qf_quoteok_cname ),
// NULL, &query);
adns_wait(adns, &query, &answer, NULL);
if (answer->status == adns_s_ok) {
#ifdef DEBUG
printf("%s\n", domain);
printf("%s\n", answer->status == adns_s_ok ? inet_ntoa(*answer->rrs.inaddr)
: "dunno");
#endif
strcpy(ip, inet_ntoa(*answer->rrs.inaddr));
result = true;
} else {
result = false;
}
adns_finish(adns);
return result;
}
it looks that if" socket(AF_INET,SOCK_DGRAM,proto->p_proto);" return -1; the ands didn't deal with it well .