Delete unused BalsaFrame methods: BytesSpliced() and BytesSafeToSplice()
PiperOrigin-RevId: 842771840
diff --git a/quiche/balsa/balsa_enums.cc b/quiche/balsa/balsa_enums.cc
index f4b5e0b..ab51738 100644
--- a/quiche/balsa/balsa_enums.cc
+++ b/quiche/balsa/balsa_enums.cc
@@ -90,10 +90,6 @@
return "INVALID_CHUNK_EXTENSION";
case INVALID_CHUNK_FRAMING:
return "INVALID_CHUNK_FRAMING";
- case CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO:
- return "CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO";
- case CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT:
- return "CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT";
case MULTIPLE_CONTENT_LENGTH_KEYS:
return "MULTIPLE_CONTENT_LENGTH_KEYS";
case MULTIPLE_TRANSFER_ENCODING_KEYS:
diff --git a/quiche/balsa/balsa_enums.h b/quiche/balsa/balsa_enums.h
index 5ac0bbb..113da9e 100644
--- a/quiche/balsa/balsa_enums.h
+++ b/quiche/balsa/balsa_enums.h
@@ -91,8 +91,6 @@
INVALID_CHUNK_FRAMING,
// Other errors.
- CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO,
- CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT,
MULTIPLE_CONTENT_LENGTH_KEYS,
MULTIPLE_TRANSFER_ENCODING_KEYS,
UNKNOWN_TRANSFER_ENCODING,
diff --git a/quiche/balsa/balsa_frame.cc b/quiche/balsa/balsa_frame.cc
index 2f880e4..ae45e55 100644
--- a/quiche/balsa/balsa_frame.cc
+++ b/quiche/balsa/balsa_frame.cc
@@ -1074,55 +1074,6 @@
return message_current - original_message_start;
}
-size_t BalsaFrame::BytesSafeToSplice() const {
- switch (parse_state_) {
- case BalsaFrameEnums::READING_CHUNK_DATA:
- return chunk_length_remaining_;
- case BalsaFrameEnums::READING_UNTIL_CLOSE:
- return std::numeric_limits<size_t>::max();
- case BalsaFrameEnums::READING_CONTENT:
- return content_length_remaining_;
- default:
- return 0;
- }
-}
-
-void BalsaFrame::BytesSpliced(size_t bytes_spliced) {
- switch (parse_state_) {
- case BalsaFrameEnums::READING_CHUNK_DATA:
- if (chunk_length_remaining_ < bytes_spliced) {
- HandleError(BalsaFrameEnums::
- CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT);
- return;
- }
- chunk_length_remaining_ -= bytes_spliced;
- if (chunk_length_remaining_ == 0) {
- parse_state_ = BalsaFrameEnums::READING_CHUNK_TERM;
- }
- return;
-
- case BalsaFrameEnums::READING_UNTIL_CLOSE:
- return;
-
- case BalsaFrameEnums::READING_CONTENT:
- if (content_length_remaining_ < bytes_spliced) {
- HandleError(BalsaFrameEnums::
- CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT);
- return;
- }
- content_length_remaining_ -= bytes_spliced;
- if (content_length_remaining_ == 0) {
- parse_state_ = BalsaFrameEnums::MESSAGE_FULLY_READ;
- visitor_->MessageDone();
- }
- return;
-
- default:
- HandleError(BalsaFrameEnums::CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO);
- return;
- }
-}
-
size_t BalsaFrame::ProcessInput(const char* input, size_t size) {
const char* current = input;
const char* on_entry = current;
diff --git a/quiche/balsa/balsa_frame.h b/quiche/balsa/balsa_frame.h
index c61bcb3..8e9c35c 100644
--- a/quiche/balsa/balsa_frame.h
+++ b/quiche/balsa/balsa_frame.h
@@ -164,9 +164,6 @@
const BalsaHeaders* headers() const { return headers_; }
BalsaHeaders* mutable_headers() { return headers_; }
- size_t BytesSafeToSplice() const;
- void BytesSpliced(size_t bytes_spliced);
-
size_t ProcessInput(const char* input, size_t size) override;
void set_allow_reading_until_close_for_request(bool set) {
diff --git a/quiche/balsa/balsa_frame_test.cc b/quiche/balsa/balsa_frame_test.cc
index e807ddd..7925dd4 100644
--- a/quiche/balsa/balsa_frame_test.cc
+++ b/quiche/balsa/balsa_frame_test.cc
@@ -450,13 +450,6 @@
EXPECT_STREQ("CHUNK_LENGTH_OVERFLOW",
BalsaFrameEnums::ErrorCodeToString(
BalsaFrameEnums::CHUNK_LENGTH_OVERFLOW));
- EXPECT_STREQ("CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO",
- BalsaFrameEnums::ErrorCodeToString(
- BalsaFrameEnums::CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO));
- EXPECT_STREQ("CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT",
- BalsaFrameEnums::ErrorCodeToString(
- BalsaFrameEnums::
- CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT));
EXPECT_STREQ("MULTIPLE_CONTENT_LENGTH_KEYS",
BalsaFrameEnums::ErrorCodeToString(
BalsaFrameEnums::MULTIPLE_CONTENT_LENGTH_KEYS));
@@ -3527,180 +3520,6 @@
}
}
-TEST_F(HTTPBalsaFrameTest,
- BytesSafeToSpliceAndBytesSplicedWorksWithContentLength) {
- std::string header =
- "HTTP/1.1 200 OK\r\n"
- "content-length: 1000\r\n"
- "\r\n";
- balsa_frame_.set_is_request(false);
- size_t bytes_safe_to_splice = 1000;
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(header.size(),
- balsa_frame_.ProcessInput(header.data(), header.size()));
- EXPECT_EQ(bytes_safe_to_splice, balsa_frame_.BytesSafeToSplice());
- while (bytes_safe_to_splice > 0) {
- balsa_frame_.BytesSpliced(1);
- bytes_safe_to_splice -= 1;
- ASSERT_FALSE(balsa_frame_.Error())
- << BalsaFrameEnums::ParseStateToString(balsa_frame_.ParseState()) << " "
- << BalsaFrameEnums::ErrorCodeToString(balsa_frame_.ErrorCode())
- << " with bytes_safe_to_splice: " << bytes_safe_to_splice
- << " and BytesSafeToSplice(): " << balsa_frame_.BytesSafeToSplice();
- }
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_FALSE(balsa_frame_.Error());
- EXPECT_TRUE(balsa_frame_.MessageFullyRead());
-}
-
-TEST_F(HTTPBalsaFrameTest, BytesSplicedFlagsErrorsWhenNotInProperState) {
- balsa_frame_.set_is_request(false);
- balsa_frame_.BytesSpliced(1);
- EXPECT_TRUE(balsa_frame_.Error());
- EXPECT_EQ(BalsaFrameEnums::CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO,
- balsa_frame_.ErrorCode());
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
-}
-
-TEST_F(HTTPBalsaFrameTest,
- BytesSplicedFlagsErrorsWhenTooMuchSplicedForContentLen) {
- std::string header =
- "HTTP/1.1 200 OK\r\n"
- "content-length: 1000\r\n"
- "\r\n";
- balsa_frame_.set_is_request(false);
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(header.size(),
- balsa_frame_.ProcessInput(header.data(), header.size()));
- EXPECT_EQ(1000u, balsa_frame_.BytesSafeToSplice());
- balsa_frame_.BytesSpliced(1001);
- EXPECT_TRUE(balsa_frame_.Error());
- EXPECT_EQ(
- BalsaFrameEnums::CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT,
- balsa_frame_.ErrorCode());
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
-}
-
-TEST_F(HTTPBalsaFrameTest, BytesSplicedWorksAsExpectedForReadUntilClose) {
- std::string header =
- "HTTP/1.1 200 OK\r\n"
- "\r\n";
- balsa_frame_.set_is_request(false);
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(header.size(),
- balsa_frame_.ProcessInput(header.data(), header.size()));
- EXPECT_EQ(BalsaFrameEnums::READING_UNTIL_CLOSE, balsa_frame_.ParseState());
- EXPECT_EQ(std::numeric_limits<size_t>::max(),
- balsa_frame_.BytesSafeToSplice());
- for (int i = 0; i < 1000; ++i) {
- EXPECT_EQ(std::numeric_limits<size_t>::max(),
- balsa_frame_.BytesSafeToSplice());
- balsa_frame_.BytesSpliced(12312312);
- EXPECT_FALSE(balsa_frame_.Error());
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
- }
- EXPECT_EQ(std::numeric_limits<size_t>::max(),
- balsa_frame_.BytesSafeToSplice());
-}
-
-TEST_F(HTTPBalsaFrameTest,
- BytesSplicedFlagsErrorsWhenTooMuchSplicedForChunked) {
- std::string header =
- "HTTP/1.1 200 OK\r\n"
- "transfer-encoding: chunked\r\n"
- "\r\n";
- std::string body_fragment = "a\r\n";
- balsa_frame_.set_is_request(false);
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(header.size(),
- balsa_frame_.ProcessInput(header.data(), header.size()));
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(
- body_fragment.size(),
- balsa_frame_.ProcessInput(body_fragment.data(), body_fragment.size()));
- EXPECT_EQ(10u, balsa_frame_.BytesSafeToSplice());
- balsa_frame_.BytesSpliced(11);
- EXPECT_TRUE(balsa_frame_.Error());
- EXPECT_EQ(
- BalsaFrameEnums::CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT,
- balsa_frame_.ErrorCode());
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
-}
-
-TEST_F(HTTPBalsaFrameTest, BytesSafeToSpliceAndBytesSplicedWorksWithChunks) {
- std::string header =
- "HTTP/1.1 200 OK\r\n"
- "transfer-encoding: chunked\r\n"
- "\r\n";
- balsa_frame_.set_is_request(false);
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(header.size(),
- balsa_frame_.ProcessInput(header.data(), header.size()));
-
- {
- std::string body_fragment = "3e8\r\n";
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
- size_t bytes_safe_to_splice = 1000;
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(
- body_fragment.size(),
- balsa_frame_.ProcessInput(body_fragment.data(), body_fragment.size()));
- EXPECT_EQ(bytes_safe_to_splice, balsa_frame_.BytesSafeToSplice());
- while (bytes_safe_to_splice > 0) {
- balsa_frame_.BytesSpliced(1);
- bytes_safe_to_splice -= 1;
- ASSERT_FALSE(balsa_frame_.Error());
- }
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_FALSE(balsa_frame_.Error());
- }
- {
- std::string body_fragment = "\r\n7d0\r\n";
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
- size_t bytes_safe_to_splice = 2000;
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(
- body_fragment.size(),
- balsa_frame_.ProcessInput(body_fragment.data(), body_fragment.size()));
- EXPECT_EQ(bytes_safe_to_splice, balsa_frame_.BytesSafeToSplice());
- while (bytes_safe_to_splice > 0) {
- balsa_frame_.BytesSpliced(1);
- bytes_safe_to_splice -= 1;
- ASSERT_FALSE(balsa_frame_.Error());
- }
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_FALSE(balsa_frame_.Error());
- }
- {
- std::string body_fragment = "\r\n1\r\n";
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
- size_t bytes_safe_to_splice = 1;
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(
- body_fragment.size(),
- balsa_frame_.ProcessInput(body_fragment.data(), body_fragment.size()));
- EXPECT_EQ(bytes_safe_to_splice, balsa_frame_.BytesSafeToSplice());
- while (bytes_safe_to_splice > 0) {
- balsa_frame_.BytesSpliced(1);
- bytes_safe_to_splice -= 1;
- ASSERT_FALSE(balsa_frame_.Error());
- }
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_FALSE(balsa_frame_.Error());
- }
- {
- std::string body_fragment = "\r\n0\r\n\r\n";
- EXPECT_FALSE(balsa_frame_.MessageFullyRead());
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_EQ(
- body_fragment.size(),
- balsa_frame_.ProcessInput(body_fragment.data(), body_fragment.size()));
- EXPECT_EQ(0u, balsa_frame_.BytesSafeToSplice());
- EXPECT_FALSE(balsa_frame_.Error());
- }
- EXPECT_TRUE(balsa_frame_.MessageFullyRead());
-}
-
TEST_F(HTTPBalsaFrameTest, TwoDifferentContentLengthHeadersIsAnError) {
std::string header =
"HTTP/1.1 200 OK\r\n"