Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}