public final class PcapWriteHandler extends ChannelDuplexHandler implements Closeable
PcapWriteHandler
captures ByteBuf
from SocketChannel
/ ServerChannel
or DatagramPacket
and writes it into Pcap OutputStream
.
Things to keep in mind when using PcapWriteHandler
with TCP:
ChannelInboundHandlerAdapter.channelActive(ChannelHandlerContext)
is called,
a fake TCP 3-way handshake (SYN, SYN+ACK, ACK) is simulated as new connection in Pcap. ChannelHandlerAdapter.handlerRemoved(ChannelHandlerContext)
is called,
a fake TCP 3-way handshake (FIN+ACK, FIN+ACK, ACK) is simulated as connection shutdown in Pcap. ChannelInboundHandlerAdapter.exceptionCaught(ChannelHandlerContext, Throwable)
is called, a fake TCP RST is sent to simulate connection Reset in Pcap. captureZeroByte
to false
. Modifier and Type | Class and Description |
---|---|
static class |
PcapWriteHandler.Builder
Builder for
PcapWriteHandler |
ChannelHandler.Sharable
Constructor and Description |
---|
PcapWriteHandler(OutputStream outputStream)
Deprecated.
Use
PcapWriteHandler.Builder instead. |
PcapWriteHandler(OutputStream outputStream,
boolean captureZeroByte,
boolean writePcapGlobalHeader)
Deprecated.
Use
PcapWriteHandler.Builder instead. |
bind, close, connect, deregister, disconnect, flush, read
channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
ensureNotSharable, handlerAdded, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
handlerAdded
@Deprecated public PcapWriteHandler(OutputStream outputStream)
PcapWriteHandler.Builder
instead.PcapWriteHandler
Instance.
captureZeroByte
is set to false
and
writePcapGlobalHeader
is set to true
.outputStream
- OutputStream where Pcap data will be written. Call close()
to close this
OutputStream.NullPointerException
- If OutputStream
is null
then we'll throw an
NullPointerException
@Deprecated public PcapWriteHandler(OutputStream outputStream, boolean captureZeroByte, boolean writePcapGlobalHeader)
PcapWriteHandler.Builder
instead.PcapWriteHandler
InstanceoutputStream
- OutputStream where Pcap data will be written. Call close()
to close this
OutputStream.captureZeroByte
- Set to true
to enable capturing packets with empty (0 bytes) payload.
Otherwise, if set to false
, empty packets will be filtered out.writePcapGlobalHeader
- Set to true
to write Pcap Global Header on initialization.
Otherwise, if set to false
, Pcap Global Header will not be written
on initialization. This could when writing Pcap data on a existing file where
Pcap Global Header is already present.NullPointerException
- If OutputStream
is null
then we'll throw an
NullPointerException
public static void writeGlobalHeader(OutputStream outputStream) throws IOException
OutputStream
outputStream
- OutputStream where Pcap data will be written.IOException
- if there is an error writing to the OutputStream
public void channelActive(ChannelHandlerContext ctx) throws Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelActive()
to forward
to the next ChannelInboundHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.channelActive
in interface ChannelInboundHandler
channelActive
in class ChannelInboundHandlerAdapter
Exception
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelRead(Object)
to forward
to the next ChannelInboundHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.channelRead
in interface ChannelInboundHandler
channelRead
in class ChannelInboundHandlerAdapter
Exception
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception
ChannelDuplexHandler
ChannelOutboundInvoker.write(Object, ChannelPromise)
to forward
to the next ChannelOutboundHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.write
in interface ChannelOutboundHandler
write
in class ChannelDuplexHandler
ctx
- the ChannelHandlerContext
for which the write operation is mademsg
- the message to writepromise
- the ChannelPromise
to notify once the operation completesException
- thrown if an error occurspublic void handlerRemoved(ChannelHandlerContext ctx) throws Exception
ChannelHandlerAdapter
handlerRemoved
in interface ChannelHandler
handlerRemoved
in class ChannelHandlerAdapter
Exception
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireExceptionCaught(Throwable)
to forward
to the next ChannelHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.exceptionCaught
in interface ChannelHandler
exceptionCaught
in interface ChannelInboundHandler
exceptionCaught
in class ChannelInboundHandlerAdapter
Exception
public boolean isWriting()
true
if the PcapWriteHandler
is currently
writing packets to the OutputStream
else returns false
.public void pause()
PcapWriteHandler
from writing packets to the OutputStream
.public void resume()
PcapWriteHandler
to writing packets to the OutputStream
.public void close() throws IOException
Close PcapWriter
and OutputStream
.
Note: Calling this method does not close PcapWriteHandler
.
Only Pcap Writes are closed.
close
in interface Closeable
close
in interface AutoCloseable
IOException
- If OutputStream.close()
throws an exceptionpublic static PcapWriteHandler.Builder builder()
Copyright © 2008–2024 The Netty Project. All rights reserved.