Class DNSInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.ByteArrayInputStream
-
- org.opennms.netmgt.provision.support.dns.DNSInputStream
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class DNSInputStream extends ByteArrayInputStream
DNSInputStrean extends a ByteArrayInputStream and has methods to decode the data of a DNS response to an address request.
-
-
Field Summary
-
Fields inherited from class java.io.ByteArrayInputStream
buf, count, mark, pos
-
-
Constructor Summary
Constructors Constructor Description DNSInputStream(byte[] data)
Constructs a new input stream for decoding DNS records.DNSInputStream(byte[] data, int off, int len)
Constructs a DNSInputStream object from the byte array.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
readByte()
Read a byte off the input stream.String
readDomainName()
The readDomainName method is used to read an entire domain name from the stream.long
readInt()
Read an 'int' off the input stream.DNSAddressRR
readRR()
Reads the resource record from the input stream.int
readShort()
Read a 'short' off the input stream.String
readString()
Read a 'string' off the input stream.-
Methods inherited from class java.io.ByteArrayInputStream
available, close, mark, markSupported, read, read, readAllBytes, readNBytes, reset, skip, transferTo
-
Methods inherited from class java.io.InputStream
nullInputStream, read, readNBytes
-
-
-
-
Constructor Detail
-
DNSInputStream
public DNSInputStream(byte[] data)
Constructs a new input stream for decoding DNS records.
- Parameters:
data
- The array of data to pass to the base class.
-
DNSInputStream
public DNSInputStream(byte[] data, int off, int len)
Constructs a DNSInputStream object from the byte array.
- Parameters:
data
- byte array containing the response dataoff
- offset of the data in the byte arraylen
- length of the byte array
-
-
Method Detail
-
readByte
public int readByte() throws IOException
Read a byte off the input stream.
- Returns:
- The integer read.
- Throws:
IOException
- Thrown if the end-of-file is encountered trying to read the next byte.IOException
- if any.
-
readShort
public int readShort() throws IOException
Read a 'short' off the input stream.
- Returns:
- The short from the input stream.
- Throws:
IOException
- Thrown if the end-of-file is encountered trying to read the next short.IOException
- if any.
-
readInt
public long readInt() throws IOException
Read an 'int' off the input stream.
- Returns:
- The int from the input stream.
- Throws:
IOException
- Thrown if there is an error while read.IOException
- if any.
-
readString
public String readString() throws IOException
Read a 'string' off the input stream.
- Returns:
- the string from the input stream
- Throws:
IOException
- Thrown if there is an error while readIOException
- if any.
-
readDomainName
public String readDomainName() throws IOException
The readDomainName method is used to read an entire domain name from the stream. The string returned will be the concatentation of several substrings, each substring in the record is separated by a '.'(dot). For more information see the RFC for the distributed name service.
- Returns:
- The domain name string.
- Throws:
IOException
- Thrown if an error occurs decoding the string from the stream.IOException
- if any.
-
readRR
public DNSAddressRR readRR() throws IOException
Reads the resource record from the input stream.
- Returns:
- The DNSAddressRR that is in response to the address request.
- Throws:
IOException
- Thrown if data does not decode to a DNSAddressRRl.IOException
- if any.
-
-