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