1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.xbill.DNS; 4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** 6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Mail Exchange - specifies where mail to a domain is sent 7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @author Brian Wellington 9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */ 10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic class MXRecord extends U16NameBase { 12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprivate static final long serialVersionUID = 2914841027584208546L; 14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 15d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenMXRecord() {} 16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 17d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenRecord 18d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetObject() { 19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return new MXRecord(); 20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 22d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** 23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Creates an MX Record from the given data 24d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @param priority The priority of this MX. Records with lower priority 25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * are preferred. 26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @param target The host that mail is sent to 27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */ 28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic 29d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenMXRecord(Name name, int dclass, long ttl, int priority, Name target) { 30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen super(name, Type.MX, dclass, ttl, priority, "priority", 31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen target, "target"); 32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** Returns the target of the MX record */ 35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic Name 36d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetTarget() { 37d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return getNameField(); 38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** Returns the priority of this MX record */ 41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic int 42d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetPriority() { 43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return getU16Field(); 44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid 47d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrToWire(DNSOutput out, Compression c, boolean canonical) { 48d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen out.writeU16(u16Field); 49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen nameField.toWire(out, c, canonical); 50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 52d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic Name 53d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetAdditionalName() { 54d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return getNameField(); 55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 57d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 58