static int axfr_query_check(struct query_data *qdata) { /* Check valid zone, transaction security and contents. */ NS_NEED_ZONE(qdata, KNOT_RCODE_NOTAUTH); NS_NEED_AUTH(&qdata->zone->conf->acl.xfr_out, qdata); /* Check expiration. */ NS_NEED_ZONE_CONTENTS(qdata, KNOT_RCODE_SERVFAIL); return KNOT_NS_PROC_DONE; }
static int axfr_query_check(struct query_data *qdata) { /* Check valid zone, transaction security and contents. */ NS_NEED_ZONE(qdata, KNOT_RCODE_NOTAUTH); NS_NEED_AUTH(qdata, qdata->zone->name, ACL_ACTION_TRANSFER); /* Check expiration. */ NS_NEED_ZONE_CONTENTS(qdata, KNOT_RCODE_SERVFAIL); return KNOT_STATE_DONE; }
static int notify_check_query(struct query_data *qdata) { /* RFC1996 requires SOA question. */ NS_NEED_QTYPE(qdata, KNOT_RRTYPE_SOA, KNOT_RCODE_FORMERR); /* Check valid zone, transaction security. */ zone_t *zone = (zone_t *)qdata->zone; NS_NEED_ZONE(qdata, KNOT_RCODE_NOTAUTH); NS_NEED_AUTH(qdata, zone->name, ACL_ACTION_NOTIFY); return KNOT_STATE_DONE; }