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