luoleicn 0 Newbie Poster

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 .