1// Copyright (c) 2004 Brian Wellington (bwelling@xbill.org) 2 3package org.xbill.DNS; 4 5import java.io.*; 6 7/** 8 * The NULL Record. This has no defined purpose, but can be used to 9 * hold arbitrary data. 10 * 11 * @author Brian Wellington 12 */ 13 14public class NULLRecord extends Record { 15 16private static final long serialVersionUID = -5796493183235216538L; 17 18private byte [] data; 19 20NULLRecord() {} 21 22Record 23getObject() { 24 return new NULLRecord(); 25} 26 27/** 28 * Creates a NULL record from the given data. 29 * @param data The contents of the record. 30 */ 31public 32NULLRecord(Name name, int dclass, long ttl, byte [] data) { 33 super(name, Type.NULL, dclass, ttl); 34 35 if (data.length > 0xFFFF) { 36 throw new IllegalArgumentException("data must be <65536 bytes"); 37 } 38 this.data = data; 39} 40 41void 42rrFromWire(DNSInput in) throws IOException { 43 data = in.readByteArray(); 44} 45 46void 47rdataFromString(Tokenizer st, Name origin) throws IOException { 48 throw st.exception("no defined text format for NULL records"); 49} 50 51String 52rrToString() { 53 return unknownToString(data); 54} 55 56/** Returns the contents of this record. */ 57public byte [] 58getData() { 59 return data; 60} 61 62void 63rrToWire(DNSOutput out, Compression c, boolean canonical) { 64 out.writeByteArray(data); 65} 66 67} 68