Не подтверждена Коммит eb01f24d создал по автору Bruce Hamilton's avatar Bruce Hamilton Зафиксировано автором GitHub
Просмотр файлов

KTOR-8164 Bump tiny header limit in CIO engine (#4650)

владелец b91443ef
...@@ -7,7 +7,7 @@ package io.ktor.http.cio ...@@ -7,7 +7,7 @@ package io.ktor.http.cio
import io.ktor.http.cio.internals.* import io.ktor.http.cio.internals.*
import io.ktor.utils.io.pool.* import io.ktor.utils.io.pool.*
private const val EXPECTED_HEADERS_QTY = 64 private const val EXPECTED_HEADERS_QTY = 512
/* /*
* index array structure * index array structure
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
package io.ktor.tests.server.cio package io.ktor.tests.server.cio
import io.ktor.client.request.header
import io.ktor.client.statement.* import io.ktor.client.statement.*
import io.ktor.http.* import io.ktor.http.*
import io.ktor.http.content.* import io.ktor.http.content.*
...@@ -171,6 +172,26 @@ class CIOHttpServerTest : HttpServerCommonTestSuite<CIOApplicationEngine, CIOApp ...@@ -171,6 +172,26 @@ class CIOHttpServerTest : HttpServerCommonTestSuite<CIOApplicationEngine, CIOApp
} }
} }
@Test
fun testLotsOfHeaders() = runTest {
val count = 500
val implicitHeadersCount = 4
createAndStartServer {
get("/headers") {
call.respond("${call.request.headers.entries().size} headers received")
}
}
withUrl("/headers", {
repeat(count) {
header("HeaderName$it", "HeaderContent$it")
}
}) {
assertEquals(HttpStatusCode.OK, status)
assertEquals("${count + implicitHeadersCount} headers received", bodyAsText())
}
}
private suspend fun readAvailable(channel: ByteReadChannel): String { private suspend fun readAvailable(channel: ByteReadChannel): String {
val buffer = ByteArray(1024) val buffer = ByteArray(1024)
val length = channel.readAvailable(buffer) val length = channel.readAvailable(buffer)
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать