1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen// Copyright (c) 2004 Brian Wellington (bwelling@xbill.org)
2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.xbill.DNS;
4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport java.io.*;
6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Mailbox information Record - lists the address responsible for a mailing
9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * list/mailbox and the address to receive error messages relating to the
10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * mailing list/mailbox.
11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @author Brian Wellington
13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic class MINFORecord extends Record {
16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprivate static final long serialVersionUID = -3962147172340353796L;
18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprivate Name responsibleAddress;
20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprivate Name errorAddress;
21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
22d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenMINFORecord() {}
23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
24d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenRecord
25d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetObject() {
26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	return new MINFORecord();
27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
29d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Creates an MINFO Record from the given data
31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @param responsibleAddress The address responsible for the
32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * mailing list/mailbox.
33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @param errorAddress The address to receive error messages relating to the
34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * mailing list/mailbox.
35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic
37d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenMINFORecord(Name name, int dclass, long ttl,
38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	    Name responsibleAddress, Name errorAddress)
39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen{
40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	super(name, Type.MINFO, dclass, ttl);
41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
42d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	this.responsibleAddress = checkName("responsibleAddress",
43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen					    responsibleAddress);
44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	this.errorAddress = checkName("errorAddress", errorAddress);
45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
47d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid
48d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrFromWire(DNSInput in) throws IOException {
49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	responsibleAddress = new Name(in);
50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	errorAddress = new Name(in);
51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
52d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
53d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid
54d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrdataFromString(Tokenizer st, Name origin) throws IOException {
55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	responsibleAddress = st.getName(origin);
56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	errorAddress = st.getName(origin);
57d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
58d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
59d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** Converts the MINFO Record to a String */
60d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenString
61d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrToString() {
62d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	StringBuffer sb = new StringBuffer();
63d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	sb.append(responsibleAddress);
64d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	sb.append(" ");
65d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	sb.append(errorAddress);
66d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	return sb.toString();
67d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
68d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
69d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** Gets the address responsible for the mailing list/mailbox. */
70d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic Name
71d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetResponsibleAddress() {
72d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	return responsibleAddress;
73d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
74d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
75d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
76d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Gets the address to receive error messages relating to the mailing
77d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * list/mailbox.
78d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
79d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic Name
80d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetErrorAddress() {
81d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	return errorAddress;
82d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
83d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
84d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid
85d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrToWire(DNSOutput out, Compression c, boolean canonical) {
86d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	responsibleAddress.toWire(out, null, canonical);
87d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	errorAddress.toWire(out, null, canonical);
88d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
89d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
90d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
91