Skip to content
Snippets Groups Projects
Commit 69b9bdfc authored by Marek Vavrusa's avatar Marek Vavrusa
Browse files

SERVFAIL is the default RCODE for an error answer.

parent 94629895
Branches
Tags
No related merge requests found
......@@ -54,8 +54,9 @@ static int answer_put_nodes(knot_pkt_t *pkt, struct axfr_proc *state)
{
/* Put responses. */
int ret = KNOT_EOK;
knot_node_t *node = NULL;
while(!hattrie_iter_finished(state->i)) {
knot_node_t *node = (knot_node_t *)*hattrie_iter_val(state->i);
node = (knot_node_t *)*hattrie_iter_val(state->i);
ret = put_rrsets(pkt, node, state);
if (ret != KNOT_EOK) {
break;
......@@ -142,7 +143,6 @@ int axfr_answer(knot_pkt_t *pkt, knot_nameserver_t *ns, struct query_data *qdata
qdata->rcode = KNOT_RCODE_NOTAUTH;
return NS_PROC_FAIL;
default:
qdata->rcode = KNOT_RCODE_SERVFAIL;
return NS_PROC_FAIL;
}
......@@ -155,7 +155,6 @@ int axfr_answer(knot_pkt_t *pkt, knot_nameserver_t *ns, struct query_data *qdata
break;
default: /* Generic error. */
dbg_ns("%s: answered with ret = %s\n", __func__, knot_strerror(ret));
qdata->rcode = KNOT_RCODE_SERVFAIL;
return NS_PROC_FAIL;
}
......
......@@ -51,7 +51,6 @@ static int follow_cname(knot_pkt_t *pkt, const knot_dname_t **name, struct query
/* Put to wildcard node list. */
if (ptrlist_add(&qdata->wildcards, cname_node, qdata->mm) == NULL) {
qdata->rcode = KNOT_RCODE_SERVFAIL;
return ERROR;
}
......@@ -74,7 +73,6 @@ static int follow_cname(knot_pkt_t *pkt, const knot_dname_t **name, struct query
if (rr_to_add != cname_rr) {
knot_rrset_deep_free(&rr_to_add, 1);
}
qdata->rcode = KNOT_RCODE_SERVFAIL;
return ERROR;
} else {
/* Check if RR count increased. */
......@@ -91,7 +89,6 @@ static int follow_cname(knot_pkt_t *pkt, const knot_dname_t **name, struct query
if (ret != KNOT_EOK) {
dbg_ns("%s: couldn't add rrsigs for CNAME RRSet %p\n",
__func__, cname_rr);
qdata->rcode = KNOT_RCODE_SERVFAIL;
return ERROR;
}
......@@ -150,7 +147,6 @@ static int name_found(knot_pkt_t *pkt, const knot_dname_t **name,
&& (qtype == KNOT_RRTYPE_SOA || qtype == KNOT_RRTYPE_NS)) {
ret = ns_add_dnskey(qdata->node, pkt);
if (ret != KNOT_EOK) {
qdata->rcode = KNOT_RCODE_SERVFAIL;
return ERROR;
}
}
......@@ -185,7 +181,6 @@ static int name_not_found(knot_pkt_t *pkt, const knot_dname_t **name,
dbg_ns("%s: solving DNAME for name %p\n", __func__, *name);
int ret = ns_process_dname(dname_rrset, name, pkt);
if (ret != KNOT_EOK) {
qdata->rcode = KNOT_RCODE_SERVFAIL;
return ERROR;
}
......@@ -272,7 +267,6 @@ static int solve_authority(int state, const knot_dname_t **qname,
dbg_ns("%s: invalid state after qname processing = %d\n",
__func__, state);
assert(0);
qdata->rcode = KNOT_RCODE_SERVFAIL;
break;
}
......@@ -294,7 +288,6 @@ int internet_answer(knot_pkt_t *response, struct query_data *qdata)
qdata->rcode = KNOT_RCODE_REFUSED;
return NS_PROC_FAIL;
default:
qdata->rcode = KNOT_RCODE_SERVFAIL;
return NS_PROC_FAIL;
}
......@@ -395,7 +388,6 @@ int internet_notify(knot_pkt_t *pkt, knot_nameserver_t *ns, struct query_data *q
qdata->rcode = KNOT_RCODE_NOTAUTH;
return NS_PROC_FAIL;
default:
qdata->rcode = KNOT_RCODE_SERVFAIL;
return NS_PROC_FAIL;
}
......
......@@ -150,6 +150,11 @@ int ns_proc_query_out(knot_pkt_t *pkt, ns_proc_context_t *ctx)
break;
}
/* Default RCODE is SERVFAIL if not specified otherwise. */
if (next_state == NS_PROC_FAIL && data->rcode == KNOT_RCODE_NOERROR) {
data->rcode = KNOT_RCODE_SERVFAIL;
}
rcu_read_unlock();
return next_state;
}
......@@ -218,8 +223,6 @@ int query_internet(knot_pkt_t *pkt, ns_proc_context_t *ctx)
break;
default:
assert(0); /* Should be caught earlier. */
data->rcode = KNOT_RCODE_SERVFAIL;
next_state = KNOT_ERROR;
break;
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment