98N/ACopyright (C) 1999-2001 Internet Software Consortium.
98N/A$Id: ncache,v 1.6 2001/01/09 21:46:47 bwelling Exp $
98N/AThe non-DNSSEC case is pretty easy.
98N/A foundname = soa name
98N/ADNSSEC complicates things a lot, because we have to return one or more NXT
98N/Arecords (if we have them) as proof. Another tricky bit here is that we may
98N/Ahave an NXT record so we know the answer is NODATA, but we don't have the SOA
98N/Aso we can't make a NODATA response that a non-DNSSEC-aware server could
98N/Acache. Life would sure be easier if we knew if the client understood DNSSEC.
98N/ANot sure what to do in this case. Probably return delegation to force client
98N/APerhaps we should just create some kind of meta-rdata, the "negative cache
98N/AOr maybe something like:
98N/Adns_rdataset_ncachefirst()
98N/Adns_rdataset_ncachenext()
98N/Adns_rdataset_ncachecurrent()
98N/Adns_db_ncachenew(db, type) /* type can be any */
98N/Adns_db_ncachesoa(name, rdataset)
493N/Adns_db_ncachenxt(name, rdataset)
493N/Adns_db_ncacheadd(db, name, version)
98N/AIck. I favor the former.