mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 00:38:21 +00:00
Merge pull request #420 from ryleykimmel/netty-resource-leak-fix
Allow Netty to automatically maintain our internal usages of ByteBuf
This commit is contained in:
+1
-1
@@ -47,7 +47,7 @@ public final class GroupedRegionUpdateMessageEncoder extends MessageEncoder<Grou
|
||||
|
||||
GamePacket packet = encoder.encode(update);
|
||||
builder.put(DataType.BYTE, packet.getOpcode());
|
||||
builder.putBytes(packet.getPayload());
|
||||
builder.putBytes(packet.content());
|
||||
}
|
||||
|
||||
return builder.toGamePacket();
|
||||
|
||||
@@ -13,7 +13,7 @@ public final class SpamPacketMessageDecoder extends MessageDecoder<SpamPacketMes
|
||||
|
||||
@Override
|
||||
public SpamPacketMessage decode(GamePacket packet) {
|
||||
return new SpamPacketMessage(packet.getPayload().array());
|
||||
return new SpamPacketMessage(packet.content().array());
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -47,7 +47,7 @@ public final class GroupedRegionUpdateMessageEncoder extends MessageEncoder<Grou
|
||||
|
||||
GamePacket packet = encoder.encode(update);
|
||||
builder.put(DataType.BYTE, packet.getOpcode());
|
||||
builder.putBytes(packet.getPayload());
|
||||
builder.putBytes(packet.content());
|
||||
}
|
||||
|
||||
return builder.toGamePacket();
|
||||
|
||||
@@ -13,7 +13,7 @@ public final class SpamPacketMessageDecoder extends MessageDecoder<SpamPacketMes
|
||||
|
||||
@Override
|
||||
public SpamPacketMessage decode(GamePacket packet) {
|
||||
return new SpamPacketMessage(packet.getPayload().array());
|
||||
return new SpamPacketMessage(packet.content().array());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -70,37 +70,32 @@ public final class ApolloHandler extends ChannelInboundHandlerAdapter {
|
||||
|
||||
@Override
|
||||
public void channelRead(ChannelHandlerContext ctx, Object message) throws Exception {
|
||||
try {
|
||||
Channel channel = ctx.channel();
|
||||
Attribute<Session> attribute = channel.attr(ApolloHandler.SESSION_KEY);
|
||||
Session session = attribute.get();
|
||||
Channel channel = ctx.channel();
|
||||
Attribute<Session> attribute = channel.attr(ApolloHandler.SESSION_KEY);
|
||||
Session session = attribute.get();
|
||||
|
||||
if (message instanceof HttpRequest || message instanceof JagGrabRequest) {
|
||||
session = new UpdateSession(channel, serverContext);
|
||||
if (message instanceof HttpRequest || message instanceof JagGrabRequest) {
|
||||
session = new UpdateSession(channel, serverContext);
|
||||
}
|
||||
|
||||
if (session != null) {
|
||||
session.messageReceived(message);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: Perhaps let HandshakeMessage implement Message to remove this explicit check
|
||||
if (message instanceof HandshakeMessage) {
|
||||
HandshakeMessage handshakeMessage = (HandshakeMessage) message;
|
||||
|
||||
switch (handshakeMessage.getServiceId()) {
|
||||
case HandshakeConstants.SERVICE_GAME:
|
||||
attribute.set(new LoginSession(channel, serverContext));
|
||||
break;
|
||||
|
||||
case HandshakeConstants.SERVICE_UPDATE:
|
||||
attribute.set(new UpdateSession(channel, serverContext));
|
||||
break;
|
||||
}
|
||||
|
||||
if (session != null) {
|
||||
session.messageReceived(message);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: Perhaps let HandshakeMessage implement Message to remove this explicit check
|
||||
if (message instanceof HandshakeMessage) {
|
||||
HandshakeMessage handshakeMessage = (HandshakeMessage) message;
|
||||
|
||||
switch (handshakeMessage.getServiceId()) {
|
||||
case HandshakeConstants.SERVICE_GAME:
|
||||
attribute.set(new LoginSession(channel, serverContext));
|
||||
break;
|
||||
|
||||
case HandshakeConstants.SERVICE_UPDATE:
|
||||
attribute.set(new UpdateSession(channel, serverContext));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} finally {
|
||||
ReferenceCountUtil.release(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user