# also from the $BIND_BASELINE_VERSION.
- find bin/tests/system/ -mindepth 1 -maxdepth 1 -type d -exec sh -c 'test -e ../"$0" || rm -rfv -- "$0"' {} \;
- cd bin/tests/system
+ # System tests that employ binary drivers will fail on ABI change and
+ # should not be run.
+ - rm -r dlzexternal
+ - rm -r dyndb
# Run the setup phase of all system tests in the most recently tagged BIND 9
# release using the binaries built for the current BIND 9 version. This
# intends to detect obvious backward compatibility issues with the latter.
* Digest the length of the rdata.
*/
isc_buffer_init(&lenbuf, &len, sizeof(len));
- INSIST(rdatas[i].length < 65536);
isc_buffer_putuint16(&lenbuf, (uint16_t)rdatas[i].length);
isc_buffer_usedregion(&lenbuf, &lenr);
ret = dst_context_adddata(ctx, &lenr);
* Digest the rdata length.
*/
isc_buffer_init(&lenbuf, &len, sizeof(len));
- INSIST(rdatas[i].length < 65536);
isc_buffer_putuint16(&lenbuf, (uint16_t)rdatas[i].length);
isc_buffer_usedregion(&lenbuf, &lenr);
* for whatever purpose the client desires.
*/
struct dns_name {
- unsigned int magic;
- unsigned char *ndata;
- unsigned int length;
- unsigned int labels;
+ unsigned int magic;
+ uint8_t length;
+ uint8_t labels;
struct dns_name_attrs {
bool absolute : 1; /*%< Used by name.c */
bool readonly : 1; /*%< Used by name.c */
bool update : 1; /*%< Used by client. */
bool hasupdaterec : 1; /*%< Used by client. */
} attributes;
+ unsigned char *ndata;
unsigned char *offsets;
isc_buffer_t *buffer;
ISC_LINK(dns_name_t) link;
*/
struct dns_rdata {
unsigned char *data;
- unsigned int length;
dns_rdataclass_t rdclass;
dns_rdatatype_t type;
- unsigned int flags;
+ uint16_t length;
+ uint16_t flags;
ISC_LINK(dns_rdata_t) link;
};
-#define DNS_RDATA_INIT \
- { \
- NULL, 0, 0, 0, 0, { (void *)(-1), (void *)(-1) } \
+#define DNS_RDATA_INIT \
+ { \
+ .data = NULL, \
+ .link = ISC_LINK_INITIALIZER, \
}
#define DNS_RDATA_CHECKINITIALIZED
};
struct dns_slabheader {
+ _Atomic(uint16_t) attributes;
+
/*%
* Locked by the owning node's lock.
*/
- uint32_t serial;
- dns_ttl_t ttl;
- dns_typepair_t type;
- atomic_uint_least16_t attributes;
- dns_trust_t trust;
+ dns_trust_t trust;
+ uint32_t serial;
+ dns_ttl_t ttl;
+ dns_typepair_t type;
- unsigned int heap_index;
+ _Atomic(uint16_t) count;
/*%<
- * Used for TTL-based cache cleaning.
+ * Monotonically increased every time this rdataset is bound so that
+ * it is used as the base of the starting point in DNS responses
+ * when the "cyclic" rrset-order is required.
*/
- isc_stdtime_t resign;
unsigned int resign_lsb : 1;
-
- atomic_uint_fast16_t count;
+ isc_stdtime_t resign;
+ unsigned int heap_index;
/*%<
- * Monotonically increased every time this rdataset is bound so that
- * it is used as the base of the starting point in DNS responses
- * when the "cyclic" rrset-order is required.
+ * Used for TTL-based cache cleaning.
*/
- atomic_uint_fast32_t last_refresh_fail_ts;
+ isc_stdtime_t last_used;
+ _Atomic(uint32_t) last_refresh_fail_ts;
dns_slabheader_proof_t *noqname;
dns_slabheader_proof_t *closest;
* this rdataset, if any.
*/
- isc_stdtime_t last_used;
ISC_LINK(struct dns_slabheader) link;
/*%
isc_buffer_putuint16(&buffer, t->rdata.type);
isc_buffer_putuint16(&buffer, t->rdata.rdclass);
isc_buffer_putuint32(&buffer, t->ttl);
- INSIST(t->rdata.length < 65536);
isc_buffer_putuint16(&buffer, (uint16_t)t->rdata.length);
INSIST(isc_buffer_availablelength(&buffer) >= t->rdata.length);
isc_buffer_putmem(&buffer, t->rdata.data, t->rdata.length);
return false;
}
- if (name->length > DNS_NAME_MAXWIRE ||
- name->labels > DNS_NAME_MAXLABELS)
- {
+ if (name->labels > DNS_NAME_MAXLABELS) {
return false;
}
SETUP_OFFSETS(name, offsets, odata);
label->base = &name->ndata[offsets[n]];
- if (n == name->labels - 1) {
+ if (n == (unsigned int)name->labels - 1) {
label->length = name->length - offsets[n];
} else {
label->length = offsets[n + 1] - offsets[n];
dns_nsec3param_toprivate(dns_rdata_t *src, dns_rdata_t *target,
dns_rdatatype_t privatetype, unsigned char *buf,
size_t buflen) {
- REQUIRE(buflen >= src->length + 1);
+ REQUIRE(buflen >= (unsigned int)src->length + 1);
REQUIRE(DNS_RDATA_INITIALIZED(target));
unsigned int nsec : 2; /*%< range is 0..3 */
uint8_t : 0;
+ uint16_t locknum;
+
isc_refcount_t references;
isc_refcount_t erefs;
- uint16_t locknum;
void *data;
/*%
isc_refcount_t references;
isc_refcount_t erefs;
uint16_t locknum;
- void *data;
atomic_uint_fast8_t nsec;
atomic_bool wild;
atomic_bool delegating;
atomic_bool dirty;
+ void *data;
};
struct qpzonedb {
{
next = ISC_LIST_NEXT(nsec3p, link);
- if (nsec3p->length == rdata.length + 1 &&
+ if (nsec3p->length ==
+ (unsigned int)rdata.length + 1 &&
memcmp(rdata.data, nsec3p->data + 1,
nsec3p->length - 1) == 0)
{
dns_rdata_init(&rdata);
dns_rdataset_current(&nrdataset, &rdata);
- if (np->length == (rdata.length + 1) &&
+ if (np->length == ((unsigned int)rdata.length + 1) &&
memcmp(rdata.data, np->data + 1, np->length - 1) ==
0)
{