diff options
Diffstat (limited to 'src/org/xbill/DNS/AAAARecord.java')
-rw-r--r-- | src/org/xbill/DNS/AAAARecord.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/AAAARecord.java b/src/org/xbill/DNS/AAAARecord.java new file mode 100644 index 0000000..4b637aa --- /dev/null +++ b/src/org/xbill/DNS/AAAARecord.java @@ -0,0 +1,67 @@ +// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) + +package org.xbill.DNS; + +import java.io.*; +import java.net.*; + +/** + * IPv6 Address Record - maps a domain name to an IPv6 address + * + * @author Brian Wellington + */ + +public class AAAARecord extends Record { + +private static final long serialVersionUID = -4588601512069748050L; + +private InetAddress address; + +AAAARecord() {} + +Record +getObject() { + return new AAAARecord(); +} + +/** + * Creates an AAAA Record from the given data + * @param address The address suffix + */ +public +AAAARecord(Name name, int dclass, long ttl, InetAddress address) { + super(name, Type.AAAA, dclass, ttl); + if (Address.familyOf(address) != Address.IPv6) + throw new IllegalArgumentException("invalid IPv6 address"); + this.address = address; +} + +void +rrFromWire(DNSInput in) throws IOException { + address = InetAddress.getByAddress(name.toString(), + in.readByteArray(16)); +} + +void +rdataFromString(Tokenizer st, Name origin) throws IOException { + address = st.getAddress(Address.IPv6); +} + +/** Converts rdata to a String */ +String +rrToString() { + return address.getHostAddress(); +} + +/** Returns the address */ +public InetAddress +getAddress() { + return address; +} + +void +rrToWire(DNSOutput out, Compression c, boolean canonical) { + out.writeByteArray(address.getAddress()); +} + +} |