Fix bugs.

This commit is contained in:
Koen J 2025-04-09 15:41:42 +02:00
parent 97381739dd
commit 1ae9f0ea26
2 changed files with 11 additions and 7 deletions

View File

@ -12,8 +12,10 @@ import kotlin.time.Duration.Companion.milliseconds
class SyncServerTests { class SyncServerTests {
private val relayHost = "relay.grayjay.app" //private val relayHost = "relay.grayjay.app"
private val relayKey = "xGbHRzDOvE6plRbQaFgSen82eijF+gxS0yeUaeEErkw=" //private val relayKey = "xGbHRzDOvE6plRbQaFgSen82eijF+gxS0yeUaeEErkw="
private val relayKey = "XlUaSpIlRaCg0TGzZ7JYmPupgUHDqTZXUUBco2K7ejw="
private val relayHost = "192.168.1.175"
private val relayPort = 9000 private val relayPort = 9000
/** Creates a client connected to the live relay server. */ /** Creates a client connected to the live relay server. */
@ -126,7 +128,9 @@ class SyncServerTests {
val tcsDataB = CompletableDeferred<ByteArray>() val tcsDataB = CompletableDeferred<ByteArray>()
channelB.setDataHandler { _, _, o, so, d -> 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)) channelA.send(Opcode.DATA.value, 0u, ByteBuffer.wrap(maxSizeData))
val receivedData = withTimeout(5000.milliseconds) { tcsDataB.await() } val receivedData = withTimeout(5000.milliseconds) { tcsDataB.await() }

View File

@ -153,7 +153,7 @@ class ChannelRelayed(
put(encryptedPayload, 0, encryptedLength) 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) 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 decryptedPayload = ByteArray(encryptedBytes.size - 16)
val plen = transport!!.receiver.decryptWithAd(null, encryptedBytes, 0, decryptedPayload, 0, encryptedBytes.size) 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") 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) { fun handleData(data: ByteBuffer) {
val size = data.int 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 opcode = data.get().toUByte()
val subOpcode = data.get().toUByte() val subOpcode = data.get().toUByte()
invokeDataHandler(opcode, subOpcode, data) invokeDataHandler(opcode, subOpcode, data)