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