test-resolve-tables: verify that dns type/class length is within limits

DNS_TYPE_STRING_MAX causes a problem with the table autogeneration code,
change to _DNS_TYPE_STRING_MAX.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2016-02-15 18:22:11 -05:00
parent 202b76ae1a
commit 5259c0559c
2 changed files with 39 additions and 2 deletions

View file

@ -136,7 +136,7 @@ bool dns_type_is_obsolete(uint16_t type);
bool dns_type_may_wildcard(uint16_t type);
bool dns_type_apex_only(uint16_t type);
bool dns_type_needs_authentication(uint16_t type);
int dns_type_to_af(uint16_t t);
int dns_type_to_af(uint16_t type);
bool dns_class_is_pseudo(uint16_t class);
bool dns_class_is_valid_rr(uint16_t class);
@ -145,7 +145,7 @@ bool dns_class_is_valid_rr(uint16_t class);
const char *dns_type_to_string(int type);
int dns_type_from_string(const char *s);
const char *dns_class_to_string(uint16_t type);
const char *dns_class_to_string(uint16_t class);
int dns_class_from_string(const char *name);
/* https://tools.ietf.org/html/draft-ietf-dane-protocol-23#section-7.2 */

View file

@ -21,7 +21,44 @@
#include "test-tables.h"
int main(int argc, char **argv) {
uint16_t i;
test_table_sparse(dns_type, DNS_TYPE);
log_info("/* DNS_TYPE */");
for (i = 0; i < _DNS_TYPE_MAX; i++) {
const char *s;
s = dns_type_to_string(i);
assert_se(s == NULL || strlen(s) < _DNS_TYPE_STRING_MAX);
if (s)
log_info("%-*s %s%s%s%s%s%s%s%s%s",
(int) _DNS_TYPE_STRING_MAX - 1, s,
dns_type_is_pseudo(i) ? "pseudo " : "",
dns_type_is_valid_query(i) ? "valid_query " : "",
dns_type_is_valid_rr(i) ? "is_valid_rr " : "",
dns_type_may_redirect(i) ? "may_redirect " : "",
dns_type_is_dnssec(i) ? "dnssec " : "",
dns_type_is_obsolete(i) ? "obsolete " : "",
dns_type_may_wildcard(i) ? "wildcard " : "",
dns_type_apex_only(i) ? "apex_only " : "",
dns_type_needs_authentication(i) ? "needs_authentication" : "");
}
log_info("/* DNS_CLASS */");
for (i = 0; i < _DNS_CLASS_MAX; i++) {
const char *s;
s = dns_class_to_string(i);
assert_se(s == NULL || strlen(s) < _DNS_CLASS_STRING_MAX);
if (s)
log_info("%-*s %s%s",
(int) _DNS_CLASS_STRING_MAX - 1, s,
dns_class_is_pseudo(i) ? "is_pseudo " : "",
dns_class_is_valid_rr(i) ? "is_valid_rr " : "");
}
return EXIT_SUCCESS;
}