From: Miek Gieben Date: Thu, 10 Mar 2005 10:03:16 +0000 (+0000) Subject: root label is not correctly transformed to wirefmt? X-Git-Tag: release-0.50~277 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e1012f60cb47ef8b30605c3c64606a324e40448;p=thirdparty%2Fldns.git root label is not correctly transformed to wirefmt? perform a drill . ns --- diff --git a/resolver.c b/resolver.c index 05fb9f60..3bbc97df 100644 --- a/resolver.c +++ b/resolver.c @@ -535,7 +535,7 @@ ldns_resolver_query(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr { ldns_rdf *newname; ldns_pkt *pkt; - + if (!ldns_resolver_defnames(r)) { return ldns_resolver_send(r, name, type, class, flags); } @@ -545,7 +545,6 @@ ldns_resolver_query(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr } newname = ldns_dname_cat(name, ldns_resolver_domain(r)); - if (!newname) { return NULL; } @@ -604,6 +603,8 @@ ldns_resolver_send(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr_ ldns_pkt_set_id(query_pkt, id); + ldns_pkt_print(stdout, query_pkt); + /* return NULL on error */ answer_pkt = ldns_send(r, query_pkt); diff --git a/str2host.c b/str2host.c index a10fde92..f2e32c5b 100644 --- a/str2host.c +++ b/str2host.c @@ -185,8 +185,16 @@ ldns_str2rdf_dname(ldns_rdf **d, const char *str) } if (0 == len) { return LDNS_STATUS_DOMAINNAME_UNDERFLOW; + } + + /* root label */ + if (1 == len) { + *d = ldns_rdf_new_frm_data(LDNS_RDF_TYPE_DNAME, 1, "."); + return LDNS_STATUS_OK; } + /* get on with the rest */ + /* s is on the current dot * p on the previous one * q builds the dname @@ -243,6 +251,7 @@ ldns_str2rdf_dname(ldns_rdf **d, const char *str) *q = 0; } len++; + printf("len: %d\n", len); /* s - buf_str works because no magic is done in the above for-loop */ *d = ldns_rdf_new_frm_data(LDNS_RDF_TYPE_DNAME, len, buf);