/** * Method write. * * @param packet PcapPacket * @throws IOException * @see org.krakenapps.pcap.PcapOutputStream#write(PcapPacket) * @see * org.krakenapps.pcap.PcapOutputStream#write(PcapPacket) */ public void write(PcapPacket packet) throws IOException { PacketHeader packetHeader = packet.getPacketHeader(); int tsSec = packetHeader.getTsSec(); int tsUsec = packetHeader.getTsUsec(); int inclLen = packetHeader.getInclLen(); int origLen = packetHeader.getOrigLen(); addInt(tsSec); addInt(tsUsec); addInt(inclLen); addInt(origLen); Buffer payload = packet.getPacketData(); try { payload.mark(); while (true) { list.add(payload.get()); } } catch (BufferUnderflowException e) { // LOG.debug("Ignorable exception while writing packet", e); payload.reset(); } cachedPacketNum++; if (cachedPacketNum == MAX_CACHED_PACKET_NUMBER) { flush(); } }