mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 01:59:26 +00:00
This commit converts the license handling to adhere to the REUSE specification. It specifically: 1. Adds used licnses to LICENSES/ directory 2. Add "isc" template for adding the copyright boilerplate 3. Changes all source files to include copyright and SPDX license header, this includes all the C sources, documentation, zone files, configuration files. There are notes in the doc/dev/copyrights file on how to add correct headers to the new files. 4. Handle the rest that can't be modified via .reuse/dep5 file. The binary (or otherwise unmodifiable) files could have license places next to them in <foo>.license file, but this would lead to cluttered repository and most of the files handled in the .reuse/dep5 file are system test files.
46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
<!--
|
|
Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
|
|
|
SPDX-License-Identifier: MPL-2.0
|
|
|
|
This Source Code Form is subject to the terms of the Mozilla Public
|
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
See the COPYRIGHT file distributed with this work for additional
|
|
information regarding copyright ownership.
|
|
-->
|
|
|
|
Negative Caching
|
|
|
|
The non-DNSSEC case is pretty easy.
|
|
|
|
foundname = soa name
|
|
rdataset = soa
|
|
node = NULL
|
|
|
|
DNSSEC complicates things a lot, because we have to return one or more NXT
|
|
records (if we have them) as proof. Another tricky bit here is that we may
|
|
have an NXT record so we know the answer is NODATA, but we don't have the SOA
|
|
so we can't make a NODATA response that a non-DNSSEC-aware server could
|
|
cache. Life would sure be easier if we knew if the client understood DNSSEC.
|
|
Not sure what to do in this case. Probably return delegation to force client
|
|
to ask authority.
|
|
|
|
|
|
Perhaps we should just create some kind of meta-rdata, the "negative cache
|
|
rdata type"?
|
|
|
|
Or maybe something like:
|
|
|
|
dns_rdataset_ncachefirst()
|
|
dns_rdataset_ncachenext()
|
|
dns_rdataset_ncachecurrent()
|
|
|
|
dns_db_ncachenew(db, type) /* type can be any */
|
|
dns_db_ncachesoa(name, rdataset)
|
|
dns_db_ncachenxt(name, rdataset)
|
|
dns_db_ncacheadd(db, name, version)
|
|
|
|
Ick. I favor the former.
|