1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen// Copyright (c) 2008 Brian Wellington (bwelling@xbill.org)
2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.xbill.DNS;
4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport java.io.*;
6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport org.xbill.DNS.utils.base64;
7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * DHCID - Dynamic Host Configuration Protocol (DHCP) ID (RFC 4701)
10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @author Brian Wellington
12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic class DHCIDRecord extends Record {
15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprivate static final long serialVersionUID = -8214820200808997707L;
17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprivate byte [] data;
19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
20d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenDHCIDRecord() {}
21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
22d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenRecord
23d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetObject() {
24d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	return new DHCIDRecord();
25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Creates an DHCID Record from the given data
29d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @param data The binary data, which is opaque to DNS.
30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic
32d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenDHCIDRecord(Name name, int dclass, long ttl, byte [] data) {
33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	super(name, Type.DHCID, dclass, ttl);
34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	this.data = data;
35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
37d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid
38d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrFromWire(DNSInput in) throws IOException {
39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	data = in.readByteArray();
40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
42d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid
43d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrdataFromString(Tokenizer st, Name origin) throws IOException {
44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	data = st.getBase64();
45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
47d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid
48d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrToWire(DNSOutput out, Compression c, boolean canonical) {
49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	out.writeByteArray(data);
50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
52d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenString
53d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrToString() {
54d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	return base64.toString(data);
55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
57d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
58d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Returns the binary data.
59d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
60d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic byte []
61d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetData() {
62d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	return data;
63d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
64d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
65d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
66