Skip to content

Commit

Permalink
More reliable resource cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
minecrafter committed Nov 19, 2016
1 parent 07ebc8b commit 43aa80e
Showing 1 changed file with 18 additions and 12 deletions.
Expand Up @@ -103,33 +103,39 @@ public void sendImmediatePackage(NetworkPackage netPackage) {
private void internalSendPackage(NetworkPackage netPackage) {
int id = PacketRegistry.getId(netPackage);

ByteBuf encodedPacketData = PooledByteBufAllocator.DEFAULT.directBuffer();

if (LOGGER.isDebugEnabled()) {
String to = connection.getRemoteAddress().map(InetSocketAddress::toString).orElse(connection.toString());
LOGGER.debug("Sending packet {} to {}", netPackage, to);
}

ByteBuf encodedPacketData = PooledByteBufAllocator.DEFAULT.directBuffer();
ByteBuf dataToSend;
if (encryptionCipher == null || netPackage.getClass().isAnnotationPresent(ForceClearText.class)) {
if (!netPackage.getClass().isAnnotationPresent(DisallowWrapping.class)) {
encodedPacketData.writeByte(0xFE);
}
encodedPacketData.writeByte((id & 0xFF));
netPackage.encode(encodedPacketData);

try {
netPackage.encode(encodedPacketData);
} catch (Exception e) {
encodedPacketData.release();
throw e;
}
dataToSend = encodedPacketData;
} else {
encodedPacketData.writeByte((id & 0xFF));
netPackage.encode(encodedPacketData);

encodedPacketData.readerIndex(0);
byte[] trailer = generateTrailer(encodedPacketData);
encodedPacketData.readerIndex(0);

encodedPacketData.writeBytes(trailer);
try {
netPackage.encode(encodedPacketData);
encodedPacketData.readerIndex(0);
byte[] trailer = generateTrailer(encodedPacketData);
encodedPacketData.readerIndex(0);
encodedPacketData.writeBytes(trailer);
} catch (Exception e) {
encodedPacketData.release();
throw e;
}

dataToSend = PooledByteBufAllocator.DEFAULT.directBuffer();
dataToSend = PooledByteBufAllocator.DEFAULT.directBuffer(encodedPacketData.readableBytes() + 1);
dataToSend.writeByte(0xFE);

try {
Expand Down

0 comments on commit 43aa80e

Please sign in to comment.