From: Jelte Jansen Date: Mon, 11 Sep 2006 10:10:23 +0000 (+0000) Subject: temporary error print during axfr X-Git-Tag: release-1.2.0~154 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d877abb416a5b0490bcc6b0da1dafe3fa38cb60f;p=thirdparty%2Fldns.git temporary error print during axfr --- diff --git a/drill/drill.c b/drill/drill.c index 2ee504b5..37b57a6f 100644 --- a/drill/drill.c +++ b/drill/drill.c @@ -692,13 +692,13 @@ main(int argc, char *argv[]) if (type == LDNS_RR_TYPE_AXFR) { status = ldns_axfr_start(res, qname, clas); if(status != LDNS_STATUS_OK) { - error("starting axfr: %s", + error("Error starting axfr: %s", ldns_get_errorstr_by_id(status)); } axfr_rr = ldns_axfr_next(res); if(!axfr_rr) { - printf("AXFR failed.\n"); + fprintf(stderr, "AXFR failed.\n"); ldns_pkt_print(stdout, ldns_axfr_last_pkt(res)); goto exit; diff --git a/resolver.c b/resolver.c index c7adacae..cfd3759a 100644 --- a/resolver.c +++ b/resolver.c @@ -981,6 +981,8 @@ ldns_axfr_next(ldns_resolver *resolver) ldns_rr *cur_rr; uint8_t *packet_wire; size_t packet_wire_size; + ldns_lookup_table *rcode; + ldns_status status; /* check if start() has been called */ if (!resolver || resolver->_socket == 0) { @@ -1012,13 +1014,18 @@ ldns_axfr_next(ldns_resolver *resolver) if(!packet_wire) return NULL; - (void) ldns_wire2pkt(&resolver->_cur_axfr_pkt, packet_wire, + status = ldns_wire2pkt(&resolver->_cur_axfr_pkt, packet_wire, packet_wire_size); free(packet_wire); resolver->_axfr_i = 0; - if (ldns_pkt_get_rcode(resolver->_cur_axfr_pkt) != 0) { - /* error */ + if (status != LDNS_STATUS_OK) { + /* TODO: make status return type of this function (...api change) */ + fprintf(stderr, "Error parsing rr during AXFR: %s\n", ldns_get_errorstr_by_id(status)); + return NULL; + } else if (ldns_pkt_get_rcode(resolver->_cur_axfr_pkt) != 0) { + rcode = ldns_lookup_by_id(ldns_rcodes, (int) ldns_pkt_get_rcode(resolver->_cur_axfr_pkt)); + fprintf(stderr, "Error in AXFR: %s\n", rcode->name); return NULL; } else { return ldns_axfr_next(resolver);