mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-24 14:30:09 +08:00
Handle leading length for ByteArray.loadAs, fix deserialization problem with RequestPush. Fix #1991, #1899.
This commit is contained in:
parent
2780fc4761
commit
e7dcf676fc
@ -1,10 +1,10 @@
|
||||
/*
|
||||
* Copyright 2019-2021 Mamoe Technologies and contributors.
|
||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
* https://github.com/mamoe/mirai/blob/dev/LICENSE
|
||||
*/
|
||||
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE", "unused")
|
||||
@ -132,11 +132,11 @@ public fun ByteArray.toUInt(): UInt =
|
||||
public fun ByteArray.toUShort(): UShort =
|
||||
((this[0].toUInt().and(255u) shl 8) + (this[1].toUInt().and(255u) shl 0)).toUShort()
|
||||
|
||||
public fun ByteArray.toInt(): Int =
|
||||
(this[0].toInt().and(255) shl 24) + (this[1].toInt().and(255) shl 16) + (this[2].toInt()
|
||||
.and(255) shl 8) + (this[3].toInt().and(
|
||||
255
|
||||
) shl 0)
|
||||
public fun ByteArray.toInt(offset: Int = 0): Int =
|
||||
this[offset + 0].toInt().and(255).shl(24)
|
||||
.plus(this[offset + 1].toInt().and(255).shl(16))
|
||||
.plus(this[offset + 2].toInt().and(255).shl(8))
|
||||
.plus(this[offset + 3].toInt().and(255).shl(0))
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
@ -44,7 +44,64 @@ internal fun <T : JceStruct> ByteArray.loadWithUniPacket(
|
||||
|
||||
internal fun <T : JceStruct> ByteArray.loadAs(
|
||||
deserializer: DeserializationStrategy<T>,
|
||||
): T = this.read { readJceStruct(deserializer) }
|
||||
offset: Int = 0,
|
||||
length: Int = size - offset,
|
||||
): T {
|
||||
if (this.size >= 4) {
|
||||
val possibleLength = this.toInt(offset = offset)
|
||||
// return doLoadAs(deserializer, offset = offset + 4, length = possibleLength)
|
||||
|
||||
if (possibleLength == length || possibleLength == length - 4) {
|
||||
return doLoadAs(
|
||||
deserializer,
|
||||
offset = offset + 4,
|
||||
length = length - 4
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return doLoadAs(deserializer, offset, length)
|
||||
}
|
||||
|
||||
private fun <T : JceStruct> ByteArray.doLoadAs(
|
||||
deserializer: DeserializationStrategy<T>,
|
||||
offset: Int,
|
||||
length: Int,
|
||||
): T {
|
||||
try {
|
||||
return this.inputStream(offset = offset, length = length).asInput().use { input ->
|
||||
Tars.UTF_8.load(deserializer, input)
|
||||
}
|
||||
} catch (originalException: Exception) {
|
||||
val log = ByteArrayOutputStream()
|
||||
try {
|
||||
val value = PrintStream(log).use { stream ->
|
||||
stream.println("\nData: ")
|
||||
stream.println(this.toUHexString(offset = offset, length = length))
|
||||
stream.println("Trace:")
|
||||
|
||||
this.inputStream(offset = offset, length = length).asInput().use { input ->
|
||||
Tars.UTF_8.load(deserializer, input, debugLogger = DebugLogger(stream))
|
||||
}
|
||||
}
|
||||
return value.also {
|
||||
TarsDecoder.logger.warning(
|
||||
contextualBugReportException(
|
||||
"解析 " + deserializer.descriptor.serialName,
|
||||
"启用 debug 模式后解析正常: $value \n\n${log.toByteArray().decodeToString()}",
|
||||
originalException
|
||||
)
|
||||
)
|
||||
}
|
||||
} catch (secondFailure: Exception) {
|
||||
throw contextualBugReportException(
|
||||
"解析 " + deserializer.descriptor.serialName,
|
||||
log.toByteArray().decodeToString(),
|
||||
ExceptionCollector.compressExceptions(originalException, secondFailure)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal fun <T : JceStruct> BytePacketBuilder.writeJceStruct(
|
||||
serializer: SerializationStrategy<T>,
|
||||
@ -54,61 +111,14 @@ internal fun <T : JceStruct> BytePacketBuilder.writeJceStruct(
|
||||
}
|
||||
|
||||
internal fun <T : JceStruct> ByteReadPacket.readJceStruct(
|
||||
serializer: DeserializationStrategy<T>,
|
||||
deserializer: DeserializationStrategy<T>,
|
||||
length: Int = this.remaining.toInt(),
|
||||
): T {
|
||||
if (JCE_DESERIALIZER_DEBUG) {
|
||||
// since 2.11
|
||||
this.useBytes(n = length) { data, arrayLength ->
|
||||
try {
|
||||
return data.inputStream(offset = 0, length = arrayLength).asInput().use { input ->
|
||||
Tars.UTF_8.load(serializer, input)
|
||||
}
|
||||
} catch (originalException: Exception) {
|
||||
val log = ByteArrayOutputStream()
|
||||
try {
|
||||
val value = PrintStream(log).use { stream ->
|
||||
stream.println("\nData: ")
|
||||
stream.println(data.toUHexString(length = arrayLength))
|
||||
stream.println("Trace:")
|
||||
|
||||
data.inputStream(offset = 0, length = arrayLength).asInput().use { input ->
|
||||
Tars.UTF_8.load(serializer, input, debugLogger = DebugLogger(stream))
|
||||
}
|
||||
}
|
||||
return value.also {
|
||||
TarsDecoder.logger.warning(
|
||||
contextualBugReportException(
|
||||
"解析 " + serializer.descriptor.serialName,
|
||||
"启用 debug 模式后解析正常: $value \n\n${log.toByteArray().decodeToString()}",
|
||||
originalException
|
||||
)
|
||||
)
|
||||
}
|
||||
} catch (secondFailure: Exception) {
|
||||
throw contextualBugReportException(
|
||||
"解析 " + serializer.descriptor.serialName,
|
||||
log.toByteArray().decodeToString(),
|
||||
ExceptionCollector.compressExceptions(originalException, secondFailure)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// since 2.0
|
||||
return this.readPacketExact(length).use {
|
||||
Tars.UTF_8.load(serializer, it)
|
||||
}
|
||||
return this.useBytes(n = length) { data, arrayLength ->
|
||||
data.loadAs(deserializer, offset = 0, length = arrayLength)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 2.11
|
||||
*/
|
||||
internal var JCE_DESERIALIZER_DEBUG by lateinitMutableProperty {
|
||||
systemProp("mirai.jce.deserializer.debug", false)
|
||||
}
|
||||
|
||||
internal fun <T : JceStruct> BytePacketBuilder.writeJceRequestPacket(
|
||||
version: Int = 3,
|
||||
servantName: String,
|
||||
|
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/dev/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.internal.utils.io.serialization
|
||||
|
||||
import net.mamoe.mirai.internal.network.protocol.data.jce.PushReq
|
||||
import net.mamoe.mirai.internal.network.protocol.data.jce.RequestPacket
|
||||
import net.mamoe.mirai.internal.test.AbstractTest
|
||||
import net.mamoe.mirai.utils.hexToBytes
|
||||
import net.mamoe.mirai.utils.read
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
internal class ReadJceStructTest : AbstractTest() {
|
||||
|
||||
@Test
|
||||
fun `ByteReadPacket readJceStruct`() {
|
||||
"10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().read {
|
||||
readJceStruct(RequestPacket.serializer())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ByteReadPacket readJceStruct with rubbish length`() { // #1991
|
||||
"00 00 03 E4 10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().read {
|
||||
readJceStruct(RequestPacket.serializer())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ByteReadPacket readUniPacket`() {
|
||||
"10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().read {
|
||||
readUniPacket(PushReq.serializer(), "PushReq")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ByteReadPacket readUniPacket with rubbish length`() { // #1991
|
||||
"00 00 03 E4 10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().read {
|
||||
readUniPacket(PushReq.serializer(), "PushReq")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun `ByteArray readJceStruct`() {
|
||||
"10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().loadAs(RequestPacket.serializer())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ByteArray readJceStruct with rubbish length`() { // #1991
|
||||
"00 00 03 E4 10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().loadAs(RequestPacket.serializer())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ByteArray readUniPacket`() {
|
||||
"10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().loadWithUniPacket(PushReq.serializer(), "PushReq")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ByteArray readUniPacket with rubbish length`() { // #1991
|
||||
"00 00 03 E4 10 02 2C 3C 4C 56 23 51 51 53 65 72 76 69 63 65 2E 43 6F 6E 66 69 67 50 75 73 68 53 76 63 2E 4D 61 69 6E 53 65 72 76 61 6E 74 66 07 50 75 73 68 52 65 71 7D 00 01 03 A3 08 00 01 06 07 50 75 73 68 52 65 71 18 00 01 06 12 43 6F 6E 66 69 67 50 75 73 68 2E 50 75 73 68 52 65 71 1D 00 01 03 7B 0A 10 01 2D 00 01 03 6D 19 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 39 00 07 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 31 34 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 34 39 2E 37 2E 32 35 33 2E 32 34 34 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0C 31 38 33 2E 34 37 2E 39 39 2E 32 34 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 34 35 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 38 33 2E 34 37 2E 31 30 32 2E 31 36 35 20 50 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 36 2E 32 31 31 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 AC 0B 4C 5C 6C 70 01 89 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 99 00 04 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0D 34 32 2E 38 31 2E 31 39 33 2E 32 34 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C AC 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 30 2E 33 37 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C AC 0B A9 0C B9 0C C9 0C D9 0C EC FC 0F F6 10 00 FC 11 32 00 29 18 59 0B 8C 98 0C A8 0C"
|
||||
.hexToBytes().loadWithUniPacket(PushReq.serializer(), "PushReq")
|
||||
}
|
||||
}
|
@ -12,7 +12,6 @@ package net.mamoe.mirai.internal.utils.io.serialization.tars.internal
|
||||
import kotlinx.serialization.Serializable
|
||||
import net.mamoe.mirai.internal.test.AbstractTest
|
||||
import net.mamoe.mirai.internal.utils.io.JceStruct
|
||||
import net.mamoe.mirai.internal.utils.io.serialization.JCE_DESERIALIZER_DEBUG
|
||||
import net.mamoe.mirai.internal.utils.io.serialization.readJceStruct
|
||||
import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars
|
||||
import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
|
||||
@ -26,9 +25,6 @@ import kotlin.test.assertEquals
|
||||
import kotlin.test.assertFails
|
||||
|
||||
class DebugLoggerTest : AbstractTest() {
|
||||
init {
|
||||
JCE_DESERIALIZER_DEBUG = true
|
||||
}
|
||||
|
||||
fun String.uniteLine(): String = replace("\r\n", "\n").replace("\r", "\n")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user