SPDY: SpdyHeaderBlockDecoder should not discard input data

This commit is contained in:
Jeff Pinner 2013-06-28 13:35:29 -07:00 committed by Trustin Lee
parent b3ace85773
commit 91ee0e5a56
2 changed files with 1 additions and 4 deletions

View File

@ -82,7 +82,6 @@ public class SpdyHeaderBlockRawDecoder extends SpdyHeaderBlockDecoder {
// Try to read length of name // Try to read length of name
if (encoded.readableBytes() < lengthFieldSize) { if (encoded.readableBytes() < lengthFieldSize) {
encoded.resetReaderIndex(); encoded.resetReaderIndex();
encoded.discardReadBytes();
return; return;
} }
int nameLength = readLengthField(encoded); int nameLength = readLengthField(encoded);
@ -101,7 +100,6 @@ public class SpdyHeaderBlockRawDecoder extends SpdyHeaderBlockDecoder {
// Try to read name // Try to read name
if (encoded.readableBytes() < nameLength) { if (encoded.readableBytes() < nameLength) {
encoded.resetReaderIndex(); encoded.resetReaderIndex();
encoded.discardReadBytes();
return; return;
} }
byte[] nameBytes = new byte[nameLength]; byte[] nameBytes = new byte[nameLength];
@ -117,7 +115,6 @@ public class SpdyHeaderBlockRawDecoder extends SpdyHeaderBlockDecoder {
// Try to read length of value // Try to read length of value
if (encoded.readableBytes() < lengthFieldSize) { if (encoded.readableBytes() < lengthFieldSize) {
encoded.resetReaderIndex(); encoded.resetReaderIndex();
encoded.discardReadBytes();
return; return;
} }
int valueLength = readLengthField(encoded); int valueLength = readLengthField(encoded);
@ -150,7 +147,6 @@ public class SpdyHeaderBlockRawDecoder extends SpdyHeaderBlockDecoder {
// Try to read value // Try to read value
if (encoded.readableBytes() < valueLength) { if (encoded.readableBytes() < valueLength) {
encoded.resetReaderIndex(); encoded.resetReaderIndex();
encoded.discardReadBytes();
return; return;
} }
byte[] valueBytes = new byte[valueLength]; byte[] valueBytes = new byte[valueLength];

View File

@ -70,6 +70,7 @@ class SpdyHeaderBlockZlibDecoder extends SpdyHeaderBlockRawDecoder {
if (frame != null) { if (frame != null) {
decompressed.writeBytes(out, 0, numBytes); decompressed.writeBytes(out, 0, numBytes);
super.decode(decompressed, frame); super.decode(decompressed, frame);
decompressed.discardReadBytes();
} }
return numBytes; return numBytes;
} catch (DataFormatException e) { } catch (DataFormatException e) {