From: Miek Gieben Date: Mon, 31 Jan 2005 14:19:03 +0000 (+0000) Subject: cannot resolve error X-Git-Tag: release-0.50~496 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a3bb8b2b1572dd330b5e3b7e2ca4e54f49aad12e;p=thirdparty%2Fldns.git cannot resolve error --- diff --git a/net.c b/net.c index c1dd514a..a8d9dcc9 100644 --- a/net.c +++ b/net.c @@ -27,10 +27,13 @@ #include #include #include +#include #include "util.h" +extern int errno; + /* send a buffer using tcp */ ldns_pkt * ldns_sendbuf_tcp(ldns_buffer *buf, int *sockfd, struct sockaddr *dest) @@ -62,28 +65,37 @@ ldns_send(ldns_resolver *r, ldns_pkt *query_pkt) ldns_rdf **ns_array; ldns_pkt *reply; ldns_buffer *qb; + ldns_rdf *tmp; ns_array = ldns_resolver_nameservers(r); reply = NULL; + printf("we are in ldns_send()\n"); qb = ldns_buffer_new(MAX_PACKET_SIZE); if (ldns_pkt2buffer_wire(qb, query_pkt) != LDNS_STATUS_OK) { + printf("could not convert to wire fmt\n"); return NULL; } + printf("nameservers %d\n",ldns_resolver_nameserver_count(r)); + /* loop through all defined nameservers */ for (i = 0; i < ldns_resolver_nameserver_count(r); i++) { ns_ip = ldns_rdf2native_aaaaa(ns_array[i]); ns_ip_len = ldns_rdf_size(ns_array[i]); - ldns_rdf_print(stdout, ns_ip); + tmp = ns_array[i]; + + ldns_rdf_print(stdout, tmp); printf("\n"); + printf("ip address len %d\n", ns_ip_len); /* query */ reply = ldns_send_udp(qb, ns_ip, ns_ip_len); - if (!reply) { + if (reply) { + printf("reply found\n"); break; } } @@ -103,6 +115,7 @@ ldns_send_udp(ldns_buffer *qbin, const struct sockaddr *to, socklen_t tolen) if ((sockfd = socket(to->sa_family, SOCK_DGRAM, IPPROTO_UDP)) == -1) { + printf("could not open socket\n"); return NULL; } @@ -110,11 +123,13 @@ ldns_send_udp(ldns_buffer *qbin, const struct sockaddr *to, socklen_t tolen) ldns_buffer_capacity(qbin), 0, to, tolen); if (bytes == -1) { + printf("error with sending: %s\n", strerror(errno)); close(sockfd); return NULL; } if ((size_t) bytes != ldns_buffer_capacity(qbin)) { + printf("amount mismatch\n"); close(sockfd); return NULL; } @@ -122,6 +137,7 @@ ldns_send_udp(ldns_buffer *qbin, const struct sockaddr *to, socklen_t tolen) /* wait for an response*/ answer = XMALLOC(uint8_t*, MAX_PACKET_SIZE); if (!answer) { + printf("respons alloc error\n"); return NULL; } @@ -130,6 +146,7 @@ ldns_send_udp(ldns_buffer *qbin, const struct sockaddr *to, socklen_t tolen) close(sockfd); if (bytes == -1) { + printf("received too little\n"); FREE(answer); return NULL; } @@ -139,6 +156,7 @@ ldns_send_udp(ldns_buffer *qbin, const struct sockaddr *to, socklen_t tolen) if (ldns_wire2pkt(&answer_pkt, answer, (size_t) bytes) != LDNS_STATUS_OK) { + printf("could not create packet\n"); return NULL; } else { return answer_pkt; diff --git a/rdata.c b/rdata.c index e499ee3b..9782e633 100644 --- a/rdata.c +++ b/rdata.c @@ -151,6 +151,7 @@ ldns_rdf2native_aaaaa(ldns_rdf *rd) memcpy(data->sa_data, ldns_rdf_data(rd), ldns_rdf_size(rd)); return data; default: + printf("_aaaaa something is wrong, should not reached this\n\n"); return NULL; } } diff --git a/resolver.c b/resolver.c index 21f54e3e..c91cf242 100644 --- a/resolver.c +++ b/resolver.c @@ -282,9 +282,11 @@ ldns_resolver_send(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr_ class = LDNS_RR_CLASS_IN; } if (0 == ldns_resolver_configured(r)) { + printf("resolver is not configued\n"); return NULL; } if (ldns_rdf_get_type(name) != LDNS_RDF_TYPE_DNAME) { + printf("query type is not correct type\n"); return NULL; } @@ -293,7 +295,6 @@ ldns_resolver_send(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr_ query_pkt = ldns_pkt_query_new(name, type, class); if (!query_pkt) { printf("Failed to generate pkt\n"); - return NULL; } /* return NULL on error */