Package io.netty.handler.codec.dns
Class DatagramDnsResponseEncoder
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelOutboundHandlerAdapter
-
- io.netty.handler.codec.MessageToMessageEncoder<AddressedEnvelope<DnsResponse,java.net.InetSocketAddress>>
-
- io.netty.handler.codec.dns.DatagramDnsResponseEncoder
-
- All Implemented Interfaces:
ChannelHandler
,ChannelOutboundHandler
@UnstableApi @Sharable public class DatagramDnsResponseEncoder extends MessageToMessageEncoder<AddressedEnvelope<DnsResponse,java.net.InetSocketAddress>>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Field Summary
Fields Modifier and Type Field Description private DnsRecordEncoder
recordEncoder
-
Constructor Summary
Constructors Constructor Description DatagramDnsResponseEncoder()
Creates a new encoder with the default record encoder.DatagramDnsResponseEncoder(DnsRecordEncoder recordEncoder)
Creates a new encoder with the specifiedrecordEncoder
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ByteBuf
allocateBuffer(ChannelHandlerContext ctx, AddressedEnvelope<DnsResponse,java.net.InetSocketAddress> msg)
Allocate aByteBuf
which will be used for constructing a datagram packet.protected void
encode(ChannelHandlerContext ctx, AddressedEnvelope<DnsResponse,java.net.InetSocketAddress> in, java.util.List<java.lang.Object> out)
Encode from one message to an other.private static void
encodeHeader(DnsResponse response, ByteBuf buf)
Encodes the header that is always 12 bytes long.private void
encodeQuestions(DnsResponse response, ByteBuf buf)
private void
encodeRecords(DnsResponse response, DnsSection section, ByteBuf buf)
-
Methods inherited from class io.netty.handler.codec.MessageToMessageEncoder
acceptOutboundMessage, write
-
Methods inherited from class io.netty.channel.ChannelOutboundHandlerAdapter
bind, close, connect, deregister, disconnect, flush, read
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty.channel.ChannelHandler
exceptionCaught, handlerAdded, handlerRemoved
-
-
-
-
Field Detail
-
recordEncoder
private final DnsRecordEncoder recordEncoder
-
-
Constructor Detail
-
DatagramDnsResponseEncoder
public DatagramDnsResponseEncoder()
Creates a new encoder with the default record encoder.
-
DatagramDnsResponseEncoder
public DatagramDnsResponseEncoder(DnsRecordEncoder recordEncoder)
Creates a new encoder with the specifiedrecordEncoder
.
-
-
Method Detail
-
encode
protected void encode(ChannelHandlerContext ctx, AddressedEnvelope<DnsResponse,java.net.InetSocketAddress> in, java.util.List<java.lang.Object> out) throws java.lang.Exception
Description copied from class:MessageToMessageEncoder
Encode from one message to an other. This method will be called for each written message that can be handled by this encoder.- Specified by:
encode
in classMessageToMessageEncoder<AddressedEnvelope<DnsResponse,java.net.InetSocketAddress>>
- Parameters:
ctx
- theChannelHandlerContext
which thisMessageToMessageEncoder
belongs toin
- the message to encode to an other oneout
- theList
into which the encoded msg should be added needs to do some kind of aggregation- Throws:
java.lang.Exception
- is thrown if an error occurs
-
allocateBuffer
protected ByteBuf allocateBuffer(ChannelHandlerContext ctx, AddressedEnvelope<DnsResponse,java.net.InetSocketAddress> msg) throws java.lang.Exception
Allocate aByteBuf
which will be used for constructing a datagram packet. Sub-classes may override this method to return aByteBuf
with a perfect matching initial capacity.- Throws:
java.lang.Exception
-
encodeHeader
private static void encodeHeader(DnsResponse response, ByteBuf buf)
Encodes the header that is always 12 bytes long.- Parameters:
response
- the response header being encodedbuf
- the buffer the encoded data should be written to
-
encodeQuestions
private void encodeQuestions(DnsResponse response, ByteBuf buf) throws java.lang.Exception
- Throws:
java.lang.Exception
-
encodeRecords
private void encodeRecords(DnsResponse response, DnsSection section, ByteBuf buf) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-