• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2004 Brian Wellington (bwelling@xbill.org)
2 
3 package org.xbill.DNS;
4 
5 import 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 
14 public class NULLRecord extends Record {
15 
16 private static final long serialVersionUID = -5796493183235216538L;
17 
18 private byte [] data;
19 
NULLRecord()20 NULLRecord() {}
21 
22 Record
getObject()23 getObject() {
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  */
31 public
NULLRecord(Name name, int dclass, long ttl, byte [] data)32 NULLRecord(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 
41 void
rrFromWire(DNSInput in)42 rrFromWire(DNSInput in) throws IOException {
43 	data = in.readByteArray();
44 }
45 
46 void
rdataFromString(Tokenizer st, Name origin)47 rdataFromString(Tokenizer st, Name origin) throws IOException {
48 	throw st.exception("no defined text format for NULL records");
49 }
50 
51 String
rrToString()52 rrToString() {
53 	return unknownToString(data);
54 }
55 
56 /** Returns the contents of this record. */
57 public byte []
getData()58 getData() {
59 	return data;
60 }
61 
62 void
rrToWire(DNSOutput out, Compression c, boolean canonical)63 rrToWire(DNSOutput out, Compression c, boolean canonical) {
64 	out.writeByteArray(data);
65 }
66 
67 }
68