- Set libunbound to increase current, because the libunbound change
to the event callback function signature. That needs programs,
that use it, to recompile against the new header definition.
+ - print servfail info to log as error.
16 August 2018: Wouter
- Fix warning on compile without threads.
iq->qchase.qclass, NULL)) {
/* fail -- no more targets, no more hope of targets, no hope
* of a response. */
+ errinf(qstate, "all the configured stub or forward servers failed");
verbose(VERB_QUERY, "configured stub or forward servers failed -- returning SERVFAIL");
return error_response_cache(qstate, id, LDNS_RCODE_SERVFAIL);
}
iq->deleg_msg?iq->deleg_msg->rep:
(iq->response?iq->response->rep:NULL));
+ errinf(qstate, "all servers for this domain failed");
+ errinf_dname(qstate, ", at zonecut", iq->dp->name);
verbose(VERB_QUERY, "out of query targets -- returning SERVFAIL");
/* fail -- no more targets, no more hope of targets, no hope
* of a response. */
struct mesh_cb* c;
struct reply_info* rep = (mstate->s.return_msg?
mstate->s.return_msg->rep:NULL);
+ if(mstate->s.return_rcode == LDNS_RCODE_SERVFAIL ||
+ (rep && FLAGS_GET_RCODE(rep->flags) == LDNS_RCODE_SERVFAIL)) {
+ char* err = errinf_to_str(&mstate->s);
+ if(err) {
+ char nm[255+1];
+ char* tp = sldns_wire2str_type(mstate->s.qinfo.qtype);
+ char* cl = sldns_wire2str_class(mstate->s.qinfo.qclass);
+ dname_str(mstate->s.qinfo.qname, nm);
+ log_err("query %s %s %s SERVFAIL with reason: %s",
+ nm, tp?tp:"t", cl?cl:"c", err);
+ free(err);
+ free(tp);
+ free(cl);
+ }
+ }
for(r = mstate->reply_list; r; r = r->next) {
/* if a response-ip address block has been stored the
* information should be logged for each client. */