diff options
Diffstat (limited to 'src/javax/jmdns/impl/constants/DNSRecordType.java')
-rw-r--r-- | src/javax/jmdns/impl/constants/DNSRecordType.java | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/src/javax/jmdns/impl/constants/DNSRecordType.java b/src/javax/jmdns/impl/constants/DNSRecordType.java new file mode 100644 index 0000000..e12698c --- /dev/null +++ b/src/javax/jmdns/impl/constants/DNSRecordType.java @@ -0,0 +1,312 @@ +/** + * + */ +package javax.jmdns.impl.constants; + +import java.util.logging.Logger; + +/** + * DNS Record Type + * + * @author Arthur van Hoff, Jeff Sonstein, Werner Randelshofer, Pierre Frisch, Rick Blair + */ +public enum DNSRecordType { + /** + * Address + */ + TYPE_IGNORE("ignore", 0), + /** + * Address + */ + TYPE_A("a", 1), + /** + * Name Server + */ + TYPE_NS("ns", 2), + /** + * Mail Destination + */ + TYPE_MD("md", 3), + /** + * Mail Forwarder + */ + TYPE_MF("mf", 4), + /** + * Canonical Name + */ + TYPE_CNAME("cname", 5), + /** + * Start of Authority + */ + TYPE_SOA("soa", 6), + /** + * Mailbox + */ + TYPE_MB("mb", 7), + /** + * Mail Group + */ + TYPE_MG("mg", 8), + /** + * Mail Rename + */ + TYPE_MR("mr", 9), + /** + * NULL RR + */ + TYPE_NULL("null", 10), + /** + * Well-known-service + */ + TYPE_WKS("wks", 11), + /** + * Domain Name pointer + */ + TYPE_PTR("ptr", 12), + /** + * Host information + */ + TYPE_HINFO("hinfo", 13), + /** + * Mailbox information + */ + TYPE_MINFO("minfo", 14), + /** + * Mail exchanger + */ + TYPE_MX("mx", 15), + /** + * Arbitrary text string + */ + TYPE_TXT("txt", 16), + /** + * for Responsible Person [RFC1183] + */ + TYPE_RP("rp", 17), + /** + * for AFS Data Base location [RFC1183] + */ + TYPE_AFSDB("afsdb", 18), + /** + * for X.25 PSDN address [RFC1183] + */ + TYPE_X25("x25", 19), + /** + * for ISDN address [RFC1183] + */ + TYPE_ISDN("isdn", 20), + /** + * for Route Through [RFC1183] + */ + TYPE_RT("rt", 21), + /** + * for NSAP address, NSAP style A record [RFC1706] + */ + TYPE_NSAP("nsap", 22), + /** + * + */ + TYPE_NSAP_PTR("nsap-otr", 23), + /** + * for security signature [RFC2931] + */ + TYPE_SIG("sig", 24), + /** + * for security key [RFC2535] + */ + TYPE_KEY("key", 25), + /** + * X.400 mail mapping information [RFC2163] + */ + TYPE_PX("px", 26), + /** + * Geographical Position [RFC1712] + */ + TYPE_GPOS("gpos", 27), + /** + * IP6 Address [Thomson] + */ + TYPE_AAAA("aaaa", 28), + /** + * Location Information [Vixie] + */ + TYPE_LOC("loc", 29), + /** + * Next Domain - OBSOLETE [RFC2535, RFC3755] + */ + TYPE_NXT("nxt", 30), + /** + * Endpoint Identifier [Patton] + */ + TYPE_EID("eid", 31), + /** + * Nimrod Locator [Patton] + */ + TYPE_NIMLOC("nimloc", 32), + /** + * Server Selection [RFC2782] + */ + TYPE_SRV("srv", 33), + /** + * ATM Address [Dobrowski] + */ + TYPE_ATMA("atma", 34), + /** + * Naming Authority Pointer [RFC2168, RFC2915] + */ + TYPE_NAPTR("naptr", 35), + /** + * Key Exchanger [RFC2230] + */ + TYPE_KX("kx", 36), + /** + * CERT [RFC2538] + */ + TYPE_CERT("cert", 37), + /** + * A6 [RFC2874] + */ + TYPE_A6("a6", 38), + /** + * DNAME [RFC2672] + */ + TYPE_DNAME("dname", 39), + /** + * SINK [Eastlake] + */ + TYPE_SINK("sink", 40), + /** + * OPT [RFC2671] + */ + TYPE_OPT("opt", 41), + /** + * APL [RFC3123] + */ + TYPE_APL("apl", 42), + /** + * Delegation Signer [RFC3658] + */ + TYPE_DS("ds", 43), + /** + * SSH Key Fingerprint [RFC-ietf-secsh-dns-05.txt] + */ + TYPE_SSHFP("sshfp", 44), + /** + * RRSIG [RFC3755] + */ + TYPE_RRSIG("rrsig", 46), + /** + * NSEC [RFC3755] + */ + TYPE_NSEC("nsec", 47), + /** + * DNSKEY [RFC3755] + */ + TYPE_DNSKEY("dnskey", 48), + /** + * [IANA-Reserved] + */ + TYPE_UINFO("uinfo", 100), + /** + * [IANA-Reserved] + */ + TYPE_UID("uid", 101), + /** + * [IANA-Reserved] + */ + TYPE_GID("gid", 102), + /** + * [IANA-Reserved] + */ + TYPE_UNSPEC("unspec", 103), + /** + * Transaction Key [RFC2930] + */ + TYPE_TKEY("tkey", 249), + /** + * Transaction Signature [RFC2845] + */ + TYPE_TSIG("tsig", 250), + /** + * Incremental transfer [RFC1995] + */ + TYPE_IXFR("ixfr", 251), + /** + * Transfer of an entire zone [RFC1035] + */ + TYPE_AXFR("axfr", 252), + /** + * Mailbox-related records (MB, MG or MR) [RFC1035] + */ + TYPE_MAILA("mails", 253), + /** + * Mail agent RRs (Obsolete - see MX) [RFC1035] + */ + TYPE_MAILB("mailb", 254), + /** + * Request for all records [RFC1035] + */ + TYPE_ANY("any", 255); + + private static Logger logger = Logger.getLogger(DNSRecordType.class.getName()); + + private final String _externalName; + + private final int _index; + + DNSRecordType(String name, int index) { + _externalName = name; + _index = index; + } + + /** + * Return the string representation of this type + * + * @return String + */ + public String externalName() { + return _externalName; + } + + /** + * Return the numeric value of this type + * + * @return String + */ + public int indexValue() { + return _index; + } + + /** + * @param name + * @return type for name + */ + public static DNSRecordType typeForName(String name) { + if (name != null) { + String aName = name.toLowerCase(); + for (DNSRecordType aType : DNSRecordType.values()) { + if (aType._externalName.equals(aName)) return aType; + } + } + logger.severe("Could not find record type for name: " + name); + return TYPE_IGNORE; + } + + /** + * @param index + * @return type for name + */ + public static DNSRecordType typeForIndex(int index) { + for (DNSRecordType aType : DNSRecordType.values()) { + if (aType._index == index) return aType; + } + logger.severe("Could not find record type for index: " + index); + return TYPE_IGNORE; + } + + @Override + public String toString() { + return this.name() + " index " + this.indexValue(); + } + +} |