diff --git a/proxygen/lib/http/codec/HTTPBinaryCodec.cpp b/proxygen/lib/http/codec/HTTPBinaryCodec.cpp index 18260f8278..ac86fc3dcc 100644 --- a/proxygen/lib/http/codec/HTTPBinaryCodec.cpp +++ b/proxygen/lib/http/codec/HTTPBinaryCodec.cpp @@ -35,11 +35,15 @@ void encodeString(folly::StringPiece str, folly::io::QueueAppender& appender) { } } // namespace -HTTPBinaryCodec::HTTPBinaryCodec(TransportDirection direction) { - transportDirection_ = direction; - state_ = ParseState::FRAMING_INDICATOR; - parseError_ = folly::none; - parserPaused_ = false; +HTTPBinaryCodec::HTTPBinaryCodec(TransportDirection direction) + : HTTPBinaryCodec(direction, true) { +} +HTTPBinaryCodec::HTTPBinaryCodec(TransportDirection direction, bool knownLength) + : knownLength_(knownLength), + state_(ParseState::FRAMING_INDICATOR), + parserPaused_(false), + parseError_(folly::none), + transportDirection_(direction) { } HTTPBinaryCodec::~HTTPBinaryCodec() { diff --git a/proxygen/lib/http/codec/HTTPBinaryCodec.h b/proxygen/lib/http/codec/HTTPBinaryCodec.h index 76cdea190c..df5f8614bc 100644 --- a/proxygen/lib/http/codec/HTTPBinaryCodec.h +++ b/proxygen/lib/http/codec/HTTPBinaryCodec.h @@ -54,6 +54,7 @@ class HTTPBinaryCodec : public HTTPCodec { public: // Default strictValidation to false for now to match existing behavior explicit HTTPBinaryCodec(TransportDirection direction); + HTTPBinaryCodec(TransportDirection direction, bool knownLength); ~HTTPBinaryCodec() override; HTTPBinaryCodec(HTTPBinaryCodec&&) = default; diff --git a/proxygen/lib/http/codec/test/HTTPBinaryCodecTest.cpp b/proxygen/lib/http/codec/test/HTTPBinaryCodecTest.cpp index 0de6f4eac0..842a5e9309 100644 --- a/proxygen/lib/http/codec/test/HTTPBinaryCodecTest.cpp +++ b/proxygen/lib/http/codec/test/HTTPBinaryCodecTest.cpp @@ -22,8 +22,7 @@ class HTTPBinaryCodecForTest : public HTTPBinaryCodec { } explicit HTTPBinaryCodecForTest(TransportDirection direction, bool knownLength) - : HTTPBinaryCodec{direction} { - knownLength_ = knownLength; + : HTTPBinaryCodec{direction, knownLength} { } ParseResult parseFramingIndicator(folly::io::Cursor& cursor, bool& request,