diff options
Diffstat (limited to 'src/org/xbill/DNS/HINFORecord.java')
-rw-r--r-- | src/org/xbill/DNS/HINFORecord.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/org/xbill/DNS/HINFORecord.java b/src/org/xbill/DNS/HINFORecord.java new file mode 100644 index 0000000..18fed32 --- /dev/null +++ b/src/org/xbill/DNS/HINFORecord.java @@ -0,0 +1,95 @@ +// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) + +package org.xbill.DNS; + +import java.io.*; + +/** + * Host Information - describes the CPU and OS of a host + * + * @author Brian Wellington + */ + +public class HINFORecord extends Record { + +private static final long serialVersionUID = -4732870630947452112L; + +private byte [] cpu, os; + +HINFORecord() {} + +Record +getObject() { + return new HINFORecord(); +} + +/** + * Creates an HINFO Record from the given data + * @param cpu A string describing the host's CPU + * @param os A string describing the host's OS + * @throws IllegalArgumentException One of the strings has invalid escapes + */ +public +HINFORecord(Name name, int dclass, long ttl, String cpu, String os) { + super(name, Type.HINFO, dclass, ttl); + try { + this.cpu = byteArrayFromString(cpu); + this.os = byteArrayFromString(os); + } + catch (TextParseException e) { + throw new IllegalArgumentException(e.getMessage()); + } +} + +void +rrFromWire(DNSInput in) throws IOException { + cpu = in.readCountedString(); + os = in.readCountedString(); +} + +void +rdataFromString(Tokenizer st, Name origin) throws IOException { + try { + cpu = byteArrayFromString(st.getString()); + os = byteArrayFromString(st.getString()); + } + catch (TextParseException e) { + throw st.exception(e.getMessage()); + } +} + +/** + * Returns the host's CPU + */ +public String +getCPU() { + return byteArrayToString(cpu, false); +} + +/** + * Returns the host's OS + */ +public String +getOS() { + return byteArrayToString(os, false); +} + +void +rrToWire(DNSOutput out, Compression c, boolean canonical) { + out.writeCountedString(cpu); + out.writeCountedString(os); +} + +/** + * Converts to a string + */ +String +rrToString() { + StringBuffer sb = new StringBuffer(); + sb.append(byteArrayToString(cpu, true)); + sb.append(" "); + sb.append(byteArrayToString(os, true)); + return sb.toString(); +} + +} |