[core] Add extraData decoding for future debugging

This commit is contained in:
sandtechnology 2023-06-18 19:59:30 +08:00 committed by Karlatemp
parent 760075e914
commit 8570987c34
No known key found for this signature in database
GPG Key ID: BA173CA2B9956C59

View File

@ -16,11 +16,13 @@ import net.mamoe.mirai.internal.network.component.ComponentKey
import net.mamoe.mirai.internal.network.components.PacketCodec.Companion.PacketLogger
import net.mamoe.mirai.internal.network.components.PacketCodecException.Kind.*
import net.mamoe.mirai.internal.network.handler.selector.NetworkException
import net.mamoe.mirai.internal.network.protocol.data.proto.SSOReserveField
import net.mamoe.mirai.internal.network.protocol.packet.*
import net.mamoe.mirai.internal.network.protocol.packet.login.WtLogin
import net.mamoe.mirai.internal.network.protocol.packet.sso.TRpcRawPacket
import net.mamoe.mirai.internal.utils.crypto.Ecdh
import net.mamoe.mirai.internal.utils.crypto.TEA
import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
import net.mamoe.mirai.utils.*
@ -266,7 +268,15 @@ internal class PacketCodecImpl : PacketCodec {
if (PacketLogger.isEnabled) {
val extraData = readBytes(readInt() - 4)
if (extraData.isNotEmpty()) {
PacketLogger.verbose { "(sso/inner)extraData = ${extraData.toUHexString()}" }
PacketLogger.verbose {
"(sso/inner)extraData = ${extraData.toUHexString()}, result= ${
kotlin.runCatching {
readProtoBuf(
SSOReserveField.ReserveFields.serializer()
).structureToString()
}.getOrElse { e -> "error: " + e.message }
}"
}
}
} else {
discardExact(readInt() - 4)