SPDY: SpdyFrameDecoder should buffer unread data when decoding headers
This commit is contained in:
parent
7654d3df02
commit
b3ace85773
@ -232,10 +232,10 @@ public class SpdyFrameDecoder extends FrameDecoder {
|
||||
|
||||
case READ_HEADER_BLOCK:
|
||||
int compressedBytes = Math.min(buffer.readableBytes(), length);
|
||||
length -= compressedBytes;
|
||||
ChannelBuffer compressed = buffer.slice(buffer.readerIndex(), compressedBytes);
|
||||
|
||||
try {
|
||||
headerBlockDecoder.decode(buffer.readSlice(compressedBytes), spdyHeadersFrame);
|
||||
headerBlockDecoder.decode(compressed, spdyHeadersFrame);
|
||||
} catch (Exception e) {
|
||||
state = State.FRAME_ERROR;
|
||||
spdyHeadersFrame = null;
|
||||
@ -243,6 +243,10 @@ public class SpdyFrameDecoder extends FrameDecoder {
|
||||
return null;
|
||||
}
|
||||
|
||||
int readBytes = compressedBytes - compressed.readableBytes();
|
||||
buffer.skipBytes(readBytes);
|
||||
length -= readBytes;
|
||||
|
||||
if (spdyHeadersFrame != null &&
|
||||
(spdyHeadersFrame.isInvalid() || spdyHeadersFrame.isTruncated())) {
|
||||
Object frame = spdyHeadersFrame;
|
||||
|
Loading…
x
Reference in New Issue
Block a user