From 1ae9f0ea262d72507d78bdb7a147b1d5c4c1d99c Mon Sep 17 00:00:00 2001 From: Koen J Date: Wed, 9 Apr 2025 15:41:42 +0200 Subject: [PATCH] Fix bugs. --- .../java/com/futo/platformplayer/SyncServerTests.kt | 10 +++++++--- .../com/futo/platformplayer/sync/internal/Channel.kt | 8 ++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/androidTest/java/com/futo/platformplayer/SyncServerTests.kt b/app/src/androidTest/java/com/futo/platformplayer/SyncServerTests.kt index 1731d485..d9060a79 100644 --- a/app/src/androidTest/java/com/futo/platformplayer/SyncServerTests.kt +++ b/app/src/androidTest/java/com/futo/platformplayer/SyncServerTests.kt @@ -12,8 +12,10 @@ import kotlin.time.Duration.Companion.milliseconds class SyncServerTests { - private val relayHost = "relay.grayjay.app" - private val relayKey = "xGbHRzDOvE6plRbQaFgSen82eijF+gxS0yeUaeEErkw=" + //private val relayHost = "relay.grayjay.app" + //private val relayKey = "xGbHRzDOvE6plRbQaFgSen82eijF+gxS0yeUaeEErkw=" + private val relayKey = "XlUaSpIlRaCg0TGzZ7JYmPupgUHDqTZXUUBco2K7ejw=" + private val relayHost = "192.168.1.175" private val relayPort = 9000 /** Creates a client connected to the live relay server. */ @@ -126,7 +128,9 @@ class SyncServerTests { val tcsDataB = CompletableDeferred() channelB.setDataHandler { _, _, o, so, d -> - if (o == Opcode.DATA.value && so == 0u.toUByte()) tcsDataB.complete(d.array()) + val b = ByteArray(d.remaining()) + d.get(b) + if (o == Opcode.DATA.value && so == 0u.toUByte()) tcsDataB.complete(b) } channelA.send(Opcode.DATA.value, 0u, ByteBuffer.wrap(maxSizeData)) val receivedData = withTimeout(5000.milliseconds) { tcsDataB.await() } diff --git a/app/src/main/java/com/futo/platformplayer/sync/internal/Channel.kt b/app/src/main/java/com/futo/platformplayer/sync/internal/Channel.kt index 46c31290..ab49adcb 100644 --- a/app/src/main/java/com/futo/platformplayer/sync/internal/Channel.kt +++ b/app/src/main/java/com/futo/platformplayer/sync/internal/Channel.kt @@ -153,7 +153,7 @@ class ChannelRelayed( put(encryptedPayload, 0, encryptedLength) } - session.send(Opcode.RELAY.value, RelayOpcode.RELAYED_DATA.value, ByteBuffer.wrap(relayedPacket)) + session.send(Opcode.RELAY.value, RelayOpcode.DATA.value, ByteBuffer.wrap(relayedPacket).order(ByteOrder.LITTLE_ENDIAN)) } } @@ -173,7 +173,7 @@ class ChannelRelayed( put(encryptedPayload, 0, encryptedLength) } - session.send(Opcode.RELAY.value, RelayOpcode.RELAYED_ERROR.value, ByteBuffer.wrap(relayedPacket)) + session.send(Opcode.RELAY.value, RelayOpcode.ERROR.value, ByteBuffer.wrap(relayedPacket)) } } @@ -311,7 +311,7 @@ class ChannelRelayed( val decryptedPayload = ByteArray(encryptedBytes.size - 16) val plen = transport!!.receiver.decryptWithAd(null, encryptedBytes, 0, decryptedPayload, 0, encryptedBytes.size) if (plen != decryptedPayload.size) throw IllegalStateException("Expected decrypted payload length to be $plen") - return ByteBuffer.wrap(decryptedPayload) + return ByteBuffer.wrap(decryptedPayload).order(ByteOrder.LITTLE_ENDIAN) } } @@ -329,7 +329,7 @@ class ChannelRelayed( fun handleData(data: ByteBuffer) { val size = data.int - if (size != data.remaining() + 2) throw IllegalStateException("Incomplete packet received") + if (size != data.remaining()) throw IllegalStateException("Incomplete packet received") val opcode = data.get().toUByte() val subOpcode = data.get().toUByte() invokeDataHandler(opcode, subOpcode, data)