| /** |
| * |
| */ |
| 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(); |
| } |
| |
| } |