diff options
Diffstat (limited to 'src/org/xbill/DNS/Rcode.java')
-rw-r--r-- | src/org/xbill/DNS/Rcode.java | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/Rcode.java b/src/org/xbill/DNS/Rcode.java new file mode 100644 index 0000000..7f0dd1f --- /dev/null +++ b/src/org/xbill/DNS/Rcode.java @@ -0,0 +1,123 @@ +// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) + +package org.xbill.DNS; + +/** + * Constants and functions relating to DNS rcodes (error values) + * + * @author Brian Wellington + */ + +public final class Rcode { + +private static Mnemonic rcodes = new Mnemonic("DNS Rcode", + Mnemonic.CASE_UPPER); + +private static Mnemonic tsigrcodes = new Mnemonic("TSIG rcode", + Mnemonic.CASE_UPPER); + +/** No error */ +public static final int NOERROR = 0; + +/** Format error */ +public static final int FORMERR = 1; + +/** Server failure */ +public static final int SERVFAIL = 2; + +/** The name does not exist */ +public static final int NXDOMAIN = 3; + +/** The operation requested is not implemented */ +public static final int NOTIMP = 4; + +/** Deprecated synonym for NOTIMP. */ +public static final int NOTIMPL = 4; + +/** The operation was refused by the server */ +public static final int REFUSED = 5; + +/** The name exists */ +public static final int YXDOMAIN = 6; + +/** The RRset (name, type) exists */ +public static final int YXRRSET = 7; + +/** The RRset (name, type) does not exist */ +public static final int NXRRSET = 8; + +/** The requestor is not authorized to perform this operation */ +public static final int NOTAUTH = 9; + +/** The zone specified is not a zone */ +public static final int NOTZONE = 10; + +/* EDNS extended rcodes */ +/** Unsupported EDNS level */ +public static final int BADVERS = 16; + +/* TSIG/TKEY only rcodes */ +/** The signature is invalid (TSIG/TKEY extended error) */ +public static final int BADSIG = 16; + +/** The key is invalid (TSIG/TKEY extended error) */ +public static final int BADKEY = 17; + +/** The time is out of range (TSIG/TKEY extended error) */ +public static final int BADTIME = 18; + +/** The mode is invalid (TKEY extended error) */ +public static final int BADMODE = 19; + +static { + rcodes.setMaximum(0xFFF); + rcodes.setPrefix("RESERVED"); + rcodes.setNumericAllowed(true); + + rcodes.add(NOERROR, "NOERROR"); + rcodes.add(FORMERR, "FORMERR"); + rcodes.add(SERVFAIL, "SERVFAIL"); + rcodes.add(NXDOMAIN, "NXDOMAIN"); + rcodes.add(NOTIMP, "NOTIMP"); + rcodes.addAlias(NOTIMP, "NOTIMPL"); + rcodes.add(REFUSED, "REFUSED"); + rcodes.add(YXDOMAIN, "YXDOMAIN"); + rcodes.add(YXRRSET, "YXRRSET"); + rcodes.add(NXRRSET, "NXRRSET"); + rcodes.add(NOTAUTH, "NOTAUTH"); + rcodes.add(NOTZONE, "NOTZONE"); + rcodes.add(BADVERS, "BADVERS"); + + tsigrcodes.setMaximum(0xFFFF); + tsigrcodes.setPrefix("RESERVED"); + tsigrcodes.setNumericAllowed(true); + tsigrcodes.addAll(rcodes); + + tsigrcodes.add(BADSIG, "BADSIG"); + tsigrcodes.add(BADKEY, "BADKEY"); + tsigrcodes.add(BADTIME, "BADTIME"); + tsigrcodes.add(BADMODE, "BADMODE"); +} + +private +Rcode() {} + +/** Converts a numeric Rcode into a String */ +public static String +string(int i) { + return rcodes.getText(i); +} + +/** Converts a numeric TSIG extended Rcode into a String */ +public static String +TSIGstring(int i) { + return tsigrcodes.getText(i); +} + +/** Converts a String representation of an Rcode into its numeric value */ +public static int +value(String s) { + return rcodes.getValue(s); +} + +} |