Remove #ifdef MOQT_AUTH_INFO. Also eliminate an old reference to subscribe_request
Interop is done, and the num_parameters field is restored.
Not in production
PiperOrigin-RevId: 607031454
diff --git a/quiche/quic/moqt/moqt_messages.h b/quiche/quic/moqt/moqt_messages.h
index a7c9e5d..9922c04 100644
--- a/quiche/quic/moqt/moqt_messages.h
+++ b/quiche/quic/moqt/moqt_messages.h
@@ -20,12 +20,6 @@
#include "quiche/quic/core/quic_versions.h"
#include "quiche/common/platform/api/quiche_export.h"
-// the draft-02 spec makes AUTH_INFO unparseable in SUBSCRIBE messages. This
-// flag assumes that the num_parameters field exists so that it is parseable.
-// If false, there is no num_parameters field and there must not be an
-// AUTH_INFO field.
-#define MOQT_AUTH_INFO
-
namespace moqt {
inline constexpr quic::ParsedQuicVersionVector GetMoqtSupportedQuicVersions() {
@@ -218,9 +212,7 @@
std::optional<MoqtSubscribeLocation> start_object;
std::optional<MoqtSubscribeLocation> end_group;
std::optional<MoqtSubscribeLocation> end_object;
-#ifdef MOQT_AUTH_INFO
std::optional<absl::string_view> authorization_info;
-#endif
};
struct QUICHE_EXPORT MoqtSubscribeOk {
diff --git a/quiche/quic/moqt/moqt_parser.cc b/quiche/quic/moqt/moqt_parser.cc
index ac72183..96c8a92 100644
--- a/quiche/quic/moqt/moqt_parser.cc
+++ b/quiche/quic/moqt/moqt_parser.cc
@@ -382,7 +382,6 @@
"or both non_None");
return 0;
}
-#ifdef MOQT_AUTH_INFO
uint64_t num_params;
if (!reader.ReadVarInt62(&num_params)) {
return 0;
@@ -409,7 +408,6 @@
break;
}
}
-#endif
visitor_.OnSubscribeMessage(subscribe_request);
return reader.PreviouslyReadPayload().length();
}
diff --git a/quiche/quic/moqt/moqt_parser_test.cc b/quiche/quic/moqt/moqt_parser_test.cc
index 278c39f..8116455 100644
--- a/quiche/quic/moqt/moqt_parser_test.cc
+++ b/quiche/quic/moqt/moqt_parser_test.cc
@@ -128,12 +128,10 @@
subscribe_request.track_namespace = absl::string_view(string0_);
string1_ = std::string(subscribe_request.track_name);
subscribe_request.track_name = absl::string_view(string1_);
-#ifdef MOQT_AUTH_INFO
if (subscribe_request.authorization_info.has_value()) {
string2_ = std::string(*subscribe_request.authorization_info);
subscribe_request.authorization_info = absl::string_view(string2_);
}
-#endif
last_message_ = TestMessageBase::MessageStructuredData(subscribe_request);
}
void OnSubscribeOkMessage(const MoqtSubscribeOk& message) override {
@@ -654,7 +652,6 @@
EXPECT_EQ(visitor_.parsing_error_code_, MoqtError::kProtocolViolation);
}
-#ifdef MOQT_AUTH_INFO
TEST_F(MoqtMessageSpecificTest, SubscribeAuthorizationInfoTwice) {
MoqtParser parser(kWebTrans, visitor_);
char subscribe[] = {
@@ -675,7 +672,6 @@
"AUTHORIZATION_INFO parameter appears twice in SUBSCRIBE_REQUEST");
EXPECT_EQ(visitor_.parsing_error_code_, MoqtError::kProtocolViolation);
}
-#endif
TEST_F(MoqtMessageSpecificTest, AnnounceAuthorizationInfoTwice) {
MoqtParser parser(kWebTrans, visitor_);
@@ -768,10 +764,8 @@
0x01, 0x01, // start_object = 1 (absolute)
0x00, // end_group = none
0x00, // end_object = none
-#ifdef MOQT_AUTH_INFO
0x01, // 1 parameter
0x02, 0x03, 0x62, 0x61, 0x72, // authorization_info = "bar"
-#endif
};
parser.ProcessData(absl::string_view(subscribe, sizeof(subscribe)), false);
EXPECT_EQ(visitor_.messages_received_, 0);
@@ -790,10 +784,8 @@
0x00, // start_object = none
0x00, // end_group = none
0x00, // end_object = none
-#ifdef MOQT_AUTH_INFO
0x01, // 1 parameter
0x02, 0x03, 0x62, 0x61, 0x72, // authorization_info = "bar"
-#endif
};
parser.ProcessData(absl::string_view(subscribe, sizeof(subscribe)), false);
EXPECT_EQ(visitor_.messages_received_, 0);
@@ -812,10 +804,8 @@
0x01, 0x01, // start_object = 1 (absolute)
0x00, // end_group = none
0x01, 0x01, // end_object = 1 (absolute)
-#ifdef MOQT_AUTH_INFO
0x01, // 1 parameter
0x02, 0x03, 0x62, 0x61, 0x72, // authorization_info = "bar"
-#endif
};
parser.ProcessData(absl::string_view(subscribe, sizeof(subscribe)), false);
EXPECT_EQ(visitor_.messages_received_, 0);
@@ -871,10 +861,8 @@
0x03, 0x00, // start_object = 1 (relative next)
0x00, // end_group = none
0x00, // end_object = none
-#ifdef MOQT_AUTH_INFO
0x01, // 1 parameter
0x02, 0x03, 0x62, 0x61, 0x72, // authorization_info = "bar"
-#endif
};
parser.ProcessData(absl::string_view(subscribe, sizeof(subscribe)), false);
EXPECT_EQ(visitor_.messages_received_, 1);
diff --git a/quiche/quic/moqt/moqt_session_test.cc b/quiche/quic/moqt/moqt_session_test.cc
index a865118..158c7a5 100644
--- a/quiche/quic/moqt/moqt_session_test.cc
+++ b/quiche/quic/moqt/moqt_session_test.cc
@@ -273,9 +273,7 @@
/*start_object=*/MoqtSubscribeLocation(true, static_cast<uint64_t>(0)),
/*end_group=*/std::nullopt,
/*end_object=*/std::nullopt,
-#ifdef MOQT_AUTH_INFO
/*authorization_info=*/std::nullopt,
-#endif
};
StrictMock<webtransport::test::MockStream> mock_stream;
std::unique_ptr<MoqtParserVisitor> stream_input =
@@ -393,9 +391,7 @@
/*start_object=*/MoqtSubscribeLocation(true, static_cast<uint64_t>(0)),
/*end_group=*/std::nullopt,
/*end_object=*/std::nullopt,
-#ifdef MOQT_AUTH_INFO
/*authorization_info=*/std::nullopt,
-#endif
};
StrictMock<webtransport::test::MockStream> mock_stream;
std::unique_ptr<MoqtParserVisitor> stream_input =
@@ -431,9 +427,7 @@
/*start_object=*/MoqtSubscribeLocation(true, static_cast<uint64_t>(0)),
/*end_group=*/std::nullopt,
/*end_object=*/std::nullopt,
-#ifdef MOQT_AUTH_INFO
/*authorization_info=*/std::nullopt,
-#endif
};
StrictMock<webtransport::test::MockStream> mock_stream;
std::unique_ptr<MoqtParserVisitor> stream_input =
@@ -767,9 +761,7 @@
/*start_object=*/MoqtSubscribeLocation(true, static_cast<uint64_t>(0)),
/*end_group=*/std::nullopt,
/*end_object=*/std::nullopt,
-#ifdef MOQT_AUTH_INFO
/*authorization_info=*/std::nullopt,
-#endif
};
StrictMock<webtransport::test::MockStream> mock_stream;
std::unique_ptr<MoqtParserVisitor> stream_input =
diff --git a/quiche/quic/moqt/test_tools/moqt_test_message.h b/quiche/quic/moqt/test_tools/moqt_test_message.h
index dae15e0..cd3d094 100644
--- a/quiche/quic/moqt/test_tools/moqt_test_message.h
+++ b/quiche/quic/moqt/test_tools/moqt_test_message.h
@@ -407,65 +407,55 @@
bool EqualFieldValues(MessageStructuredData& values) const override {
auto cast = std::get<MoqtSubscribe>(values);
- if (cast.subscribe_id != subscribe_request_.subscribe_id) {
+ if (cast.subscribe_id != subscribe_.subscribe_id) {
QUIC_LOG(INFO) << "SUBSCRIBE subscribe ID mismatch";
return false;
}
- if (cast.track_alias != subscribe_request_.track_alias) {
+ if (cast.track_alias != subscribe_.track_alias) {
QUIC_LOG(INFO) << "SUBSCRIBE track alias mismatch";
return false;
}
- if (cast.track_namespace != subscribe_request_.track_namespace) {
+ if (cast.track_namespace != subscribe_.track_namespace) {
QUIC_LOG(INFO) << "SUBSCRIBE track namespace mismatch";
return false;
}
- if (cast.track_name != subscribe_request_.track_name) {
+ if (cast.track_name != subscribe_.track_name) {
QUIC_LOG(INFO) << "SUBSCRIBE track name mismatch";
return false;
}
- if (cast.start_group != subscribe_request_.start_group) {
+ if (cast.start_group != subscribe_.start_group) {
QUIC_LOG(INFO) << "SUBSCRIBE start group mismatch";
return false;
}
- if (cast.start_object != subscribe_request_.start_object) {
+ if (cast.start_object != subscribe_.start_object) {
QUIC_LOG(INFO) << "SUBSCRIBE start object mismatch";
return false;
}
- if (cast.end_group != subscribe_request_.end_group) {
+ if (cast.end_group != subscribe_.end_group) {
QUIC_LOG(INFO) << "SUBSCRIBE end group mismatch";
return false;
}
- if (cast.end_object != subscribe_request_.end_object) {
+ if (cast.end_object != subscribe_.end_object) {
QUIC_LOG(INFO) << "SUBSCRIBE end object mismatch";
return false;
}
-#ifdef MOQT_AUTH_INFO
- if (cast.authorization_info != subscribe_request_.authorization_info) {
+ if (cast.authorization_info != subscribe_.authorization_info) {
QUIC_LOG(INFO) << "SUBSCRIBE authorization info mismatch";
return false;
}
-#endif
return true;
}
void ExpandVarints() override {
-#ifdef MOQT_AUTH_INFO
ExpandVarintsImpl("vvvv---v----vvvvvvvvv");
-#else
- ExpandVarintsImpl("vvvv---v----vvvvvv");
-#endif
}
MessageStructuredData structured_data() const override {
- return TestMessageBase::MessageStructuredData(subscribe_request_);
+ return TestMessageBase::MessageStructuredData(subscribe_);
}
private:
-#ifdef MOQT_AUTH_INFO
uint8_t raw_packet_[24] = {
-#else
- uint8_t raw_packet_[18] = {
-#endif
0x03,
0x01,
0x02, // id and alias
@@ -486,17 +476,15 @@
0x00, // end_object = none
// TODO(martinduke): figure out what to do about the missing num
// parameters field.
-#ifdef MOQT_AUTH_INFO
0x01, // 1 parameter
0x02,
0x03,
0x62,
0x61,
0x72, // authorization_info = "bar"
-#endif
};
- MoqtSubscribe subscribe_request_ = {
+ MoqtSubscribe subscribe_ = {
/*subscribe_id=*/1,
/*track_alias=*/2,
/*track_namespace=*/"foo",
@@ -505,9 +493,7 @@
/*start_object=*/MoqtSubscribeLocation(true, (uint64_t)1),
/*end_group=*/std::nullopt,
/*end_object=*/std::nullopt,
-#ifdef MOQT_AUTH_INFO
/*authorization_info=*/"bar",
-#endif
};
};