aboutsummaryrefslogtreecommitdiff
path: root/src/org/xbill/DNS/Options.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/xbill/DNS/Options.java')
-rw-r--r--src/org/xbill/DNS/Options.java123
1 files changed, 123 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/Options.java b/src/org/xbill/DNS/Options.java
new file mode 100644
index 0000000..2f1dae3
--- /dev/null
+++ b/src/org/xbill/DNS/Options.java
@@ -0,0 +1,123 @@
+// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
+
+package org.xbill.DNS;
+
+import java.util.*;
+
+/**
+ * Boolean options:<BR>
+ * bindttl - Print TTLs in BIND format<BR>
+ * multiline - Print records in multiline format<BR>
+ * noprintin - Don't print the class of a record if it's IN<BR>
+ * verbose - Turn on general debugging statements<BR>
+ * verbosemsg - Print all messages sent or received by SimpleResolver<BR>
+ * verbosecompression - Print messages related to name compression<BR>
+ * verbosesec - Print messages related to signature verification<BR>
+ * verbosecache - Print messages related to cache lookups<BR>
+ * <BR>
+ * Valued options:<BR>
+ * tsigfudge=n - Sets the default TSIG fudge value (in seconds)<BR>
+ * sig0validity=n - Sets the default SIG(0) validity period (in seconds)<BR>
+ *
+ * @author Brian Wellington
+ */
+
+public final class Options {
+
+private static Map table;
+
+static {
+ try {
+ refresh();
+ }
+ catch (SecurityException e) {
+ }
+}
+
+private
+Options() {}
+
+public static void
+refresh() {
+ String s = System.getProperty("dnsjava.options");
+ if (s != null) {
+ StringTokenizer st = new StringTokenizer(s, ",");
+ while (st.hasMoreTokens()) {
+ String token = st.nextToken();
+ int index = token.indexOf('=');
+ if (index == -1)
+ set(token);
+ else {
+ String option = token.substring(0, index);
+ String value = token.substring(index + 1);
+ set(option, value);
+ }
+ }
+ }
+}
+
+/** Clears all defined options */
+public static void
+clear() {
+ table = null;
+}
+
+/** Sets an option to "true" */
+public static void
+set(String option) {
+ if (table == null)
+ table = new HashMap();
+ table.put(option.toLowerCase(), "true");
+}
+
+/** Sets an option to the the supplied value */
+public static void
+set(String option, String value) {
+ if (table == null)
+ table = new HashMap();
+ table.put(option.toLowerCase(), value.toLowerCase());
+}
+
+/** Removes an option */
+public static void
+unset(String option) {
+ if (table == null)
+ return;
+ table.remove(option.toLowerCase());
+}
+
+/** Checks if an option is defined */
+public static boolean
+check(String option) {
+ if (table == null)
+ return false;
+ return (table.get(option.toLowerCase()) != null);
+}
+
+/** Returns the value of an option */
+public static String
+value(String option) {
+ if (table == null)
+ return null;
+ return ((String)table.get(option.toLowerCase()));
+}
+
+/**
+ * Returns the value of an option as an integer, or -1 if not defined.
+ */
+public static int
+intValue(String option) {
+ String s = value(option);
+ if (s != null) {
+ try {
+ int val = Integer.parseInt(s);
+ if (val > 0)
+ return (val);
+ }
+ catch (NumberFormatException e) {
+ }
+ }
+ return (-1);
+}
+
+}