Archived
0

Bridge-protocol: пропуск не известных пакетов

This commit is contained in:
2017-06-05 12:52:04 +03:00
parent 4db1161998
commit bffe5d2ed3
2 changed files with 5 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
group = 'asys' group = 'asys'
version = '0.3-SNAPSHOT' version = '0.3.1-SNAPSHOT'
task jar(type: Jar, overwrite: true) { task jar(type: Jar, overwrite: true) {
// не собирать jar // не собирать jar

View File

@@ -19,12 +19,15 @@ public class PacketDecoder extends ReplayingDecoder<Packet> {
protected void decode(ChannelHandlerContext contect, ByteBuf inBuf, List<Object> out) throws Exception { protected void decode(ChannelHandlerContext contect, ByteBuf inBuf, List<Object> out) throws Exception {
int id = inBuf.readUnsignedByte(); int id = inBuf.readUnsignedByte();
Class<? extends Packet> pktClass = contect.channel().attr(KNOWN_PACKETS).get().get(id); Class<? extends Packet> pktClass = contect.channel().attr(KNOWN_PACKETS).get().get(id);
if (pktClass == null) return; if (pktClass == null) return; //TODO надо бы в логгере писать про отсутствующий пакет
if (contect.channel().attr(KNOWN_HANDLERS).get().containsKey(pktClass)) { if (contect.channel().attr(KNOWN_HANDLERS).get().containsKey(pktClass)) {
Packet packet = pktClass.newInstance(); Packet packet = pktClass.newInstance();
packet.readSelfData(inBuf); packet.readSelfData(inBuf);
out.add(packet); out.add(packet);
} else {
//TODO по хорошему, надо информровать, что отсутствует обработчик пакета
inBuf.skipBytes(inBuf.readableBytes());
} }
} }
} }