• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
2 
3 package org.xbill.DNS;
4 
5 import java.io.*;
6 import java.net.*;
7 
8 /**
9  * IPv6 Address Record - maps a domain name to an IPv6 address
10  *
11  * @author Brian Wellington
12  */
13 
14 public class AAAARecord extends Record {
15 
16 private static final long serialVersionUID = -4588601512069748050L;
17 
18 private InetAddress address;
19 
AAAARecord()20 AAAARecord() {}
21 
22 Record
getObject()23 getObject() {
24 	return new AAAARecord();
25 }
26 
27 /**
28  * Creates an AAAA Record from the given data
29  * @param address The address suffix
30  */
31 public
AAAARecord(Name name, int dclass, long ttl, InetAddress address)32 AAAARecord(Name name, int dclass, long ttl, InetAddress address) {
33 	super(name, Type.AAAA, dclass, ttl);
34 	if (Address.familyOf(address) != Address.IPv6)
35 		throw new IllegalArgumentException("invalid IPv6 address");
36 	this.address = address;
37 }
38 
39 void
rrFromWire(DNSInput in)40 rrFromWire(DNSInput in) throws IOException {
41 	address = InetAddress.getByAddress(name.toString(),
42 					   in.readByteArray(16));
43 }
44 
45 void
rdataFromString(Tokenizer st, Name origin)46 rdataFromString(Tokenizer st, Name origin) throws IOException {
47 	address = st.getAddress(Address.IPv6);
48 }
49 
50 /** Converts rdata to a String */
51 String
rrToString()52 rrToString() {
53 	return address.getHostAddress();
54 }
55 
56 /** Returns the address */
57 public InetAddress
getAddress()58 getAddress() {
59 	return address;
60 }
61 
62 void
rrToWire(DNSOutput out, Compression c, boolean canonical)63 rrToWire(DNSOutput out, Compression c, boolean canonical) {
64 	out.writeByteArray(address.getAddress());
65 }
66 
67 }
68