diff --git a/apollo-mockserver/src/commonMain/kotlin/com/apollographql/mockserver/http.kt b/apollo-mockserver/src/commonMain/kotlin/com/apollographql/mockserver/http.kt index 6d4df6e..fc2721a 100644 --- a/apollo-mockserver/src/commonMain/kotlin/com/apollographql/mockserver/http.kt +++ b/apollo-mockserver/src/commonMain/kotlin/com/apollographql/mockserver/http.kt @@ -49,13 +49,16 @@ internal suspend fun readRequest(reader: Reader): MockRequestBase { } suspend fun readBytes(size: Long): Buffer { + var remaining = size val buffer2 = Buffer() while (buffer2.size < size) { if (reader.buffer.size == 0L) { reader.fillBuffer() } - buffer2.write(reader.buffer, minOf(size, reader.buffer.size)) + val toRead = minOf(remaining, reader.buffer.size) + buffer2.write(reader.buffer, toRead) + remaining -= toRead } return buffer2