rcode.c revision 28326542361e6a3a32511b9a5a445e749bce6231
1c3191528684f3dd93ebb122298c2f8ebfc6d397Mark Andrews * Copyright (C) 1998-2017 Internet Systems Consortium, Inc. ("ISC")
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#define NUMBERSIZE sizeof("037777777777") /* 2^32-1 octal + NUL */
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews /* standard rcodes */ \
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews /* extended rcodes */ \
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews /* extended rcodes */ \
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews/* RFC4398 section 2.1 */
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews/* RFC2535 section 7, RFC3110 */
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews { DNS_KEYALG_NSEC3RSASHA1, "NSEC3RSASHA1", 0 }, \
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrews { DNS_KEYALG_ECDSA256, "ECDSAP256SHA256", 0 }, \
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews { DNS_KEYALG_ECDSA384, "ECDSAP384SHA384", 0 }, \
{ 0, NULL, 0}
#define SECPROTONAMES \
{ 0, NULL, 0}
#define HASHALGNAMES \
{ 0, NULL, 0 }
#define DSDIGESTNAMES \
{ 0, NULL, 0}
struct tbl {
unsigned int value;
const char *name;
int flags;
static struct keyflag {
const char *name;
unsigned int value;
unsigned int mask;
} keyflags[] = {
{ NULL, 0, 0 }
static isc_result_t
return (ISC_R_NOSPACE);
return (ISC_R_SUCCESS);
static isc_result_t
isc_uint32_t n;
return (ISC_R_BADNUMBER);
return (result);
if (n > max)
return (ISC_R_RANGE);
*valuep = n;
return (ISC_R_SUCCESS);
static isc_result_t
return (result);
return (ISC_R_SUCCESS);
return (DNS_R_UNKNOWN);
static isc_result_t
unsigned int value;
return (ISC_R_SUCCESS);
unsigned int value;
return (ISC_R_SUCCESS);
unsigned int value;
return (ISC_R_SUCCESS);
unsigned int value;
return (ISC_R_SUCCESS);
isc_buffer_t b;
isc_region_t r;
isc_buffer_usedregion(&b, &r);
r.base[0] = 0;
unsigned int value;
return (ISC_R_SUCCESS);
unsigned int value;
return (ISC_R_SUCCESS);
return (ISC_R_SUCCESS);
return (result);
struct keyflag *p;
unsigned int len;
return (DNS_R_UNKNOWNFLAG);
#ifdef notyet
return (ISC_R_SUCCESS);
unsigned int value;
return (ISC_R_SUCCESS);
isc_buffer_t b;
isc_region_t r;
isc_buffer_usedregion(&b, &r);
r.base[0] = 0;
return (ISC_R_SUCCESS); \
char *endp;
unsigned int val;
return (ISC_R_SUCCESS);
return (DNS_R_UNKNOWN);
switch (rdclass) {
case dns_rdataclass_any:
case dns_rdataclass_chaos:
case dns_rdataclass_hs:
case dns_rdataclass_in:
case dns_rdataclass_none:
case dns_rdataclass_reserved0:
if (size == 0U)