Skip to content

Commit bfdaae0

Browse files
committed
WIP
1 parent 52b3649 commit bfdaae0

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

testtool/client/src/commonMain/kotlin/TesttoolClient.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
package dev.whyoleg.cryptography.testtool.client
66

77
import io.ktor.client.*
8+
import io.ktor.client.call.*
89
import io.ktor.client.plugins.*
910
import io.ktor.client.request.*
1011
import io.ktor.client.statement.*
1112
import io.ktor.http.content.*
12-
import io.ktor.utils.io.*
1313
import kotlinx.coroutines.flow.*
1414
import kotlinx.io.*
1515

@@ -47,16 +47,16 @@ internal suspend fun postData(path: String, bytes: ByteArray): String = client.p
4747
}.bodyAsText()
4848

4949
internal fun getData(path: String): Flow<Pair<String, ByteArray>> = flow {
50-
val channel = client.get(path).bodyAsChannel()
50+
val source = client.get(path).body<Source>()
5151
try {
5252
while (true) {
53-
val idLength = runCatching { channel.readInt() }.getOrNull() ?: break // not enough data to read
54-
val id = channel.readPacket(idLength).readString()
55-
val contentLength = channel.readInt()
56-
val content = channel.readPacket(contentLength).readByteArray()
53+
val idLength = source.readInt()
54+
val id = source.readString(idLength.toLong())
55+
val contentLength = source.readInt()
56+
val content = source.readByteArray(contentLength)
5757
emit(id to content)
5858
}
59-
} finally {
60-
channel.cancel()
59+
} catch (cause: EOFException) {
60+
// ignore
6161
}
6262
}

0 commit comments

Comments
 (0)