| // 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(); |
| } |
| |
| } |