1 // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
2
3 package org.xbill.DNS;
4
5 /**
6 * Constants and functions relating to DNS opcodes
7 *
8 * @author Brian Wellington
9 */
10
11 public final class Opcode {
12
13 /** A standard query */
14 public static final int QUERY = 0;
15
16 /** An inverse query (deprecated) */
17 public static final int IQUERY = 1;
18
19 /** A server status request (not used) */
20 public static final int STATUS = 2;
21
22 /**
23 * A message from a primary to a secondary server to initiate a zone transfer
24 */
25 public static final int NOTIFY = 4;
26
27 /** A dynamic update message */
28 public static final int UPDATE = 5;
29
30 private static Mnemonic opcodes = new Mnemonic("DNS Opcode",
31 Mnemonic.CASE_UPPER);
32
33 static {
34 opcodes.setMaximum(0xF);
35 opcodes.setPrefix("RESERVED");
36 opcodes.setNumericAllowed(true);
37
opcodes.add(QUERY, "QUERY")38 opcodes.add(QUERY, "QUERY");
opcodes.add(IQUERY, "IQUERY")39 opcodes.add(IQUERY, "IQUERY");
opcodes.add(STATUS, "STATUS")40 opcodes.add(STATUS, "STATUS");
opcodes.add(NOTIFY, "NOTIFY")41 opcodes.add(NOTIFY, "NOTIFY");
opcodes.add(UPDATE, "UPDATE")42 opcodes.add(UPDATE, "UPDATE");
43 }
44
45 private
Opcode()46 Opcode() {}
47
48 /** Converts a numeric Opcode into a String */
49 public static String
string(int i)50 string(int i) {
51 return opcodes.getText(i);
52 }
53
54 /** Converts a String representation of an Opcode into its numeric value */
55 public static int
value(String s)56 value(String s) {
57 return opcodes.getValue(s);
58 }
59
60 }
61