package com.intrbiz.bergamot.nrpe.netty; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ReplayingDecoder; import java.io.IOException; import java.util.List; import com.intrbiz.bergamot.nrpe.model.NRPEPacket; public class NRPEDecoder extends ReplayingDecoder<Void> { @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws IOException { // NRPE uses a fixed length packet and uses a CRC32, // so it is easiest to just read 1024 [sic] bytes into // a buffer byte[] packet = new byte[NRPEPacket.PACKET_LENGTH]; in.readBytes(packet); out.add(NRPEPacket.parse(packet)); } }