Set up packet codec and channel initialization
This commit is contained in:
@@ -59,7 +59,7 @@ public class MaplePacketDecoder extends CumulativeProtocolDecoder {
|
||||
MapleAESOFB rcvdCrypto = client.getReceiveCrypto();
|
||||
if (in.remaining() >= 4 && decoderState.packetlength == -1) {
|
||||
int packetHeader = in.getInt();
|
||||
if (!rcvdCrypto.checkPacket(packetHeader)) {
|
||||
if (!rcvdCrypto.isValidHeader(packetHeader)) {
|
||||
MapleSessionCoordinator.getInstance().closeSession(session, true);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class ClientInitializer extends ChannelInitializer<SocketChannel> {
|
||||
final String clientIp = socketChannel.remoteAddress().getHostName();
|
||||
log.debug("Client initiated new connection from: {}", clientIp);
|
||||
|
||||
MapleClient client = new MapleClient(ClientCyphers.generateNew());
|
||||
socketChannel.pipeline().addLast("MapleClient", client);
|
||||
socketChannel.pipeline().addLast("PacketCodec", new PacketCodec(ClientCyphers.generateNew()));
|
||||
socketChannel.pipeline().addLast("MapleClient", new MapleClient());
|
||||
}
|
||||
}
|
||||
|
||||
9
src/main/java/net/netty/PacketCodec.java
Normal file
9
src/main/java/net/netty/PacketCodec.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package net.netty;
|
||||
|
||||
import io.netty.channel.CombinedChannelDuplexHandler;
|
||||
|
||||
public class PacketCodec extends CombinedChannelDuplexHandler<PacketDecoder, PacketEncoder> {
|
||||
public PacketCodec(ClientCyphers clientCyphers) {
|
||||
super(new PacketDecoder(clientCyphers.getReceiveCypher()), new PacketEncoder(clientCyphers.getSendCypher()));
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ public class PacketDecoder extends ReplayingDecoder<Void> {
|
||||
protected void decode(ChannelHandlerContext context, ByteBuf in, List<Object> out) {
|
||||
final int header = in.readInt();
|
||||
|
||||
if (!receiveCypher.checkPacket(header)) {
|
||||
if (!receiveCypher.isValidHeader(header)) {
|
||||
throw new InvalidPacketHeaderException("Attempted to decode a packet with an invalid header", header);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import net.mina.MapleCustomEncryption;
|
||||
import net.packet.OutPacket;
|
||||
import tools.MapleAESOFB;
|
||||
|
||||
public class PacketEncoder extends MessageToByteEncoder<OutPacket> {
|
||||
|
||||
Reference in New Issue
Block a user