aboutsummaryrefslogtreecommitdiff
path: root/src/org/xbill/DNS/NULLRecord.java
blob: fa46d61dfc8817057837d5c72cbd02010b1e6817 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Copyright (c) 2004 Brian Wellington (bwelling@xbill.org)

package org.xbill.DNS;

import java.io.*;

/**
 * The NULL Record.  This has no defined purpose, but can be used to
 * hold arbitrary data.
 *
 * @author Brian Wellington
 */

public class NULLRecord extends Record {

private static final long serialVersionUID = -5796493183235216538L;

private byte [] data;

NULLRecord() {}

Record
getObject() {
	return new NULLRecord();
}

/**
 * Creates a NULL record from the given data.
 * @param data The contents of the record.
 */
public
NULLRecord(Name name, int dclass, long ttl, byte [] data) {
	super(name, Type.NULL, dclass, ttl);

	if (data.length > 0xFFFF) {
		throw new IllegalArgumentException("data must be <65536 bytes");
	}
	this.data = data;
}

void
rrFromWire(DNSInput in) throws IOException {
	data = in.readByteArray();
}

void
rdataFromString(Tokenizer st, Name origin) throws IOException {
	throw st.exception("no defined text format for NULL records");
}

String
rrToString() {
	return unknownToString(data);
}

/** Returns the contents of this record. */
public byte []
getData() {
	return data;
}

void
rrToWire(DNSOutput out, Compression c, boolean canonical) {
	out.writeByteArray(data);
}

}