You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-19 15:06:19 +00:00
🆙 Added some btter logging and fix pre-existing leak in GameByteDecoder
This commit is contained in:
@@ -39,7 +39,7 @@ public class WsAesDecoder extends MessageToMessageDecoder<ByteBuf> {
|
||||
byte[] plain = WsSessionCrypto.aesGcmDecrypt(key, nonce, ct);
|
||||
out.add(Unpooled.wrappedBuffer(plain));
|
||||
} catch (Exception e) {
|
||||
LOGGER.warn("[ws-crypto] AES-GCM decrypt failed", e);
|
||||
LOGGER.warn("[ws-crypto] AES-GCM decrypt failed ({}), closing channel", e.getClass().getSimpleName());
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
+15
-2
@@ -3,6 +3,7 @@ package com.eu.habbo.networking.gameserver.crypto;
|
||||
import com.eu.habbo.Emulator;
|
||||
import com.eu.habbo.networking.gameserver.GameServerAttributes;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import io.netty.channel.ChannelPipeline;
|
||||
@@ -118,7 +119,7 @@ public class WsHandshakeHandler extends ChannelInboundHandlerAdapter {
|
||||
|
||||
LOGGER.debug("[ws-crypto] handshake complete for {}", clientAddress(ctx));
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("[ws-crypto] handshake failed from " + clientAddress(ctx), e);
|
||||
LOGGER.warn("[ws-crypto] handshake failed from {} : {}", clientAddress(ctx), friendlyReason(e));
|
||||
ctx.close();
|
||||
} finally {
|
||||
in.release();
|
||||
@@ -131,9 +132,21 @@ public class WsHandshakeHandler extends ChannelInboundHandlerAdapter {
|
||||
return String.valueOf(ctx.channel().remoteAddress());
|
||||
}
|
||||
|
||||
private static String friendlyReason(Throwable t) {
|
||||
if (t == null) return "unknown";
|
||||
String name = t.getClass().getSimpleName();
|
||||
String msg = t.getMessage();
|
||||
return (msg == null || msg.isEmpty()) ? name : name + ": " + msg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
|
||||
LOGGER.error("[ws-crypto] handshake handler error", cause);
|
||||
if (cause instanceof java.io.IOException) {
|
||||
LOGGER.debug("[ws-crypto] client disconnected during handshake ({}): {}",
|
||||
clientAddress(ctx), friendlyReason(cause));
|
||||
} else {
|
||||
LOGGER.error("[ws-crypto] handshake handler error from " + clientAddress(ctx), cause);
|
||||
}
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
+1
-3
@@ -2,7 +2,6 @@ package com.eu.habbo.networking.gameserver.decoders;
|
||||
|
||||
import com.eu.habbo.messages.ClientMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
|
||||
@@ -12,8 +11,7 @@ public class GameByteDecoder extends ByteToMessageDecoder {
|
||||
@Override
|
||||
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
|
||||
short header = in.readShort();
|
||||
ByteBuf body = Unpooled.copiedBuffer(in.readBytes(in.readableBytes()));
|
||||
|
||||
ByteBuf body = in.readBytes(in.readableBytes());
|
||||
out.add(new ClientMessage(header, body));
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user