From 354d2ac46a621e6ba32bbbde1fdcb19538660ad6 Mon Sep 17 00:00:00 2001 From: tursom Date: Thu, 21 Nov 2019 16:40:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20Web=20=E5=86=99=E5=85=A5?= =?UTF-8?q?=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/cn/tursom/web/netty/NettyHttpContent.kt | 6 +++--- web/src/main/kotlin/cn/tursom/web/HttpContent.kt | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/web/netty-web/src/main/kotlin/cn/tursom/web/netty/NettyHttpContent.kt b/web/netty-web/src/main/kotlin/cn/tursom/web/netty/NettyHttpContent.kt index 492d9ab..bb72cb1 100644 --- a/web/netty-web/src/main/kotlin/cn/tursom/web/netty/NettyHttpContent.kt +++ b/web/netty-web/src/main/kotlin/cn/tursom/web/netty/NettyHttpContent.kt @@ -1,6 +1,5 @@ package cn.tursom.web.netty -import cn.tursom.core.buf import cn.tursom.core.buffer.ByteBuffer import cn.tursom.web.AdvanceHttpContent import cn.tursom.web.utils.Chunked @@ -10,7 +9,6 @@ import io.netty.buffer.Unpooled import io.netty.channel.ChannelHandlerContext import io.netty.handler.codec.http.* import io.netty.handler.stream.ChunkedFile -import java.io.ByteArrayOutputStream import java.io.File import java.io.RandomAccessFile import java.util.* @@ -110,7 +108,9 @@ open class NettyHttpContent( responseBodyBuf.addComponent(if (buffer is NettyByteBuffer) { buffer.byteBuf } else { - Unpooled.wrappedBuffer(buffer.readBuffer()) + val buf = Unpooled.wrappedBuffer(buffer.readBuffer()) + buffer.clear() + buf }) } diff --git a/web/src/main/kotlin/cn/tursom/web/HttpContent.kt b/web/src/main/kotlin/cn/tursom/web/HttpContent.kt index 8d22b86..fa2b8d7 100644 --- a/web/src/main/kotlin/cn/tursom/web/HttpContent.kt +++ b/web/src/main/kotlin/cn/tursom/web/HttpContent.kt @@ -1,14 +1,11 @@ package cn.tursom.web -import cn.tursom.core.buf import cn.tursom.core.buffer.ByteBuffer -import cn.tursom.core.count import cn.tursom.core.urlDecode import cn.tursom.web.utils.CacheControl import cn.tursom.web.utils.Chunked import cn.tursom.web.utils.Cookie import cn.tursom.web.utils.SameSite -import java.io.ByteArrayOutputStream import java.io.File import java.io.RandomAccessFile import java.net.SocketAddress @@ -51,7 +48,12 @@ interface HttpContent { fun finish() fun finish(buffer: ByteArray, offset: Int = 0, size: Int = buffer.size - offset) fun finish(buffer: ByteBuffer) { - finish(buffer.array, buffer.readOffset, buffer.readAllSize()) + if (buffer.hasArray) { + finish(buffer.array, buffer.readOffset, buffer.readAllSize()) + } else { + write(buffer) + finish() + } buffer.close() }