aboutsummaryrefslogtreecommitdiff
path: root/src/org/xbill/DNS/Rcode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/xbill/DNS/Rcode.java')
-rw-r--r--src/org/xbill/DNS/Rcode.java123
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);
+}
+
+}