return KNOT_STATE_FAIL;
}
- /* Create answer packet */
+ /* Initialize answer packet */
knot_pkt_t *answer = request->answer;
knot_wire_set_qr(answer->wire);
knot_wire_clear_aa(answer->wire);
struct kr_query *qry = kr_rplan_current(rplan);
/* Empty resolution plan, push packet as the new query */
- if (kr_rplan_empty(&request->rplan)) {
+ if (kr_rplan_empty(rplan)) {
+ if (knot_pkt_init_response(request->answer, packet) != 0) {
+ return KNOT_STATE_FAIL;
+ }
const knot_dname_t *qname = knot_pkt_qname(packet);
uint16_t qclass = knot_pkt_qclass(packet);
uint16_t qtype = knot_pkt_qtype(packet);
struct kr_query *kr_rplan_current(struct kr_rplan *rplan)
{
- if (rplan == NULL || EMPTY_LIST(rplan->pending)) {
+ if (kr_rplan_empty(rplan)) {
return NULL;
}