Skip to content

Commit 2c1f953

Browse files
authored
Merge pull request #563 from Quicr/error-reason
Standardize error reason/reason phrase
2 parents 371e4cd + 8968a0a commit 2c1f953

File tree

5 files changed

+20
-20
lines changed

5 files changed

+20
-20
lines changed

include/quicr/detail/base_track_handler.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ namespace quicr {
4343
};
4444
ReasonCode reason_code;
4545

46-
std::optional<std::string> reason_phrase = std::nullopt;
46+
std::optional<messages::ReasonPhrase> error_reason = std::nullopt;
4747
std::optional<uint64_t> track_alias = std::nullopt; ///< Set only when ResponseCode is kRetryTrackAlias
4848

4949
std::optional<messages::Location> largest_location = std::nullopt;

include/quicr/server.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ namespace quicr {
4444
};
4545
ReasonCode reason_code;
4646

47-
std::optional<Bytes> reason_phrase;
47+
std::optional<messages::ReasonPhrase> error_reason;
4848
};
4949

5050
/**

src/client.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ namespace quicr {
245245
"Received subscribe error conn_id: {} subscribe_id: {} reason: {} code: {} requested track_alias: {}",
246246
conn_ctx.connection_handle,
247247
msg.subscribe_id,
248-
std::string(msg.reason_phrase.begin(), msg.reason_phrase.end()),
248+
std::string(msg.error_reason.begin(), msg.error_reason.end()),
249249
static_cast<std::uint64_t>(msg.error_code),
250250
msg.track_alias);
251251

@@ -300,7 +300,7 @@ namespace quicr {
300300
std::string reason = "unknown";
301301
auto tfn = FullTrackName{ msg.track_namespace, {}, std::nullopt };
302302
auto th = TrackHash(tfn);
303-
reason.assign(msg.reason_phrase.begin(), msg.reason_phrase.end());
303+
reason.assign(msg.error_reason.begin(), msg.error_reason.end());
304304

305305
SPDLOG_LOGGER_INFO(logger_,
306306
"Received announce error for namespace_hash: {0} error code: {1} reason: {2}",
@@ -325,7 +325,7 @@ namespace quicr {
325325
auto error_code = static_cast<messages::SubscribeAnnouncesErrorCode>(msg.error_code);
326326
SubscribeAnnouncesStatusChanged(msg.track_namespace_prefix,
327327
error_code,
328-
std::make_optional<messages::ReasonPhrase>(msg.reason_phrase));
328+
std::make_optional<messages::ReasonPhrase>(msg.error_reason));
329329

330330
return true;
331331
}
@@ -520,7 +520,7 @@ namespace quicr {
520520
conn_ctx.connection_handle,
521521
msg.subscribe_id,
522522
static_cast<std::uint64_t>(msg.error_code),
523-
std::string(msg.reason_phrase.begin(), msg.reason_phrase.end()));
523+
std::string(msg.error_reason.begin(), msg.error_reason.end()));
524524

525525
fetch_it->second.get()->SetStatus(FetchTrackHandler::Status::kError);
526526
conn_ctx.tracks_by_sub_id.erase(fetch_it);

src/server.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ namespace quicr {
118118
subscribe_id,
119119
*subscribe_response.track_alias,
120120
messages::SubscribeErrorCode::kRetryTrackAlias,
121-
subscribe_response.reason_phrase.has_value() ? *subscribe_response.reason_phrase
122-
: "internal error");
121+
subscribe_response.error_reason.has_value() ? *subscribe_response.error_reason
122+
: "internal error");
123123
} else {
124124
SendSubscribeError(conn_it->second,
125125
subscribe_id,
@@ -496,7 +496,7 @@ namespace quicr {
496496
std::string reason = "unknown";
497497
auto tfn = FullTrackName{ msg.track_namespace, {}, std::nullopt };
498498
auto th = TrackHash(tfn);
499-
reason.assign(msg.reason_phrase.begin(), msg.reason_phrase.end());
499+
reason.assign(msg.error_reason.begin(), msg.error_reason.end());
500500

501501
SPDLOG_LOGGER_INFO(logger_,
502502
"Received announce error for namespace_hash: {0} error code: {1} reason: {2}",

test/moq_ctrl_messages.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,14 @@ TEST_CASE("AnnounceError Message encode/decode")
124124
auto announce_err = AnnounceError{};
125125
announce_err.track_namespace = kTrackNamespaceConf;
126126
announce_err.error_code = quicr::messages::AnnounceErrorCode::kNotSupported;
127-
announce_err.reason_phrase = Bytes{ 0x1, 0x2, 0x3 };
127+
announce_err.error_reason = Bytes{ 0x1, 0x2, 0x3 };
128128
buffer << announce_err;
129129

130130
AnnounceError announce_err_out;
131131
CHECK(VerifyCtrl(buffer, static_cast<uint64_t>(ControlMessageType::kAnnounceError), announce_err_out));
132132
CHECK_EQ(kTrackNamespaceConf, announce_err_out.track_namespace);
133133
CHECK_EQ(announce_err.error_code, announce_err_out.error_code);
134-
CHECK_EQ(announce_err.reason_phrase, announce_err_out.reason_phrase);
134+
CHECK_EQ(announce_err.error_reason, announce_err_out.error_reason);
135135
}
136136

137137
TEST_CASE("AnnounceCancel Message encode/decode")
@@ -146,7 +146,7 @@ TEST_CASE("AnnounceCancel Message encode/decode")
146146
CHECK(VerifyCtrl(buffer, static_cast<uint64_t>(ControlMessageType::kAnnounceCancel), announce_cancel_out));
147147
CHECK_EQ(announce_cancel.track_namespace, announce_cancel_out.track_namespace);
148148
CHECK_EQ(announce_cancel.error_code, announce_cancel_out.error_code);
149-
CHECK_EQ(announce_cancel.reason_phrase, announce_cancel_out.reason_phrase);
149+
CHECK_EQ(announce_cancel.error_reason, announce_cancel_out.error_reason);
150150
}
151151

152152
TEST_CASE("Subscribe (kLatestObject) Message encode/decode")
@@ -590,15 +590,15 @@ TEST_CASE("Error Message encode/decode")
590590
auto subscribe_err = SubscribeError{};
591591
subscribe_err.subscribe_id = 0x1;
592592
subscribe_err.error_code = quicr::messages::SubscribeErrorCode::kTrackDoesNotExist;
593-
subscribe_err.reason_phrase = Bytes{ 0x0, 0x1 };
593+
subscribe_err.error_reason = Bytes{ 0x0, 0x1 };
594594
subscribe_err.track_alias = uint64_t(kTrackAliasAliceVideo);
595595
buffer << subscribe_err;
596596

597597
SubscribeError subscribe_err_out;
598598
CHECK(VerifyCtrl(buffer, static_cast<uint64_t>(ControlMessageType::kSubscribeError), subscribe_err_out));
599599
CHECK_EQ(subscribe_err.subscribe_id, subscribe_err_out.subscribe_id);
600600
CHECK_EQ(subscribe_err.error_code, subscribe_err_out.error_code);
601-
CHECK_EQ(subscribe_err.reason_phrase, subscribe_err_out.reason_phrase);
601+
CHECK_EQ(subscribe_err.error_reason, subscribe_err_out.error_reason);
602602
CHECK_EQ(subscribe_err.track_alias, subscribe_err_out.track_alias);
603603
}
604604

@@ -623,7 +623,7 @@ TEST_CASE("SubscribeDone Message encode/decode")
623623
subscribe_done.subscribe_id = 0x1;
624624
subscribe_done.status_code = quicr::messages::SubscribeDoneStatusCode::kExpired;
625625
subscribe_done.stream_count = 0x0;
626-
subscribe_done.reason_phrase = Bytes{ 0x0 };
626+
subscribe_done.error_reason = Bytes{ 0x0 };
627627

628628
buffer << subscribe_done;
629629

@@ -633,7 +633,7 @@ TEST_CASE("SubscribeDone Message encode/decode")
633633
CHECK_EQ(subscribe_done.subscribe_id, subscribe_done_out.subscribe_id);
634634
CHECK_EQ(subscribe_done.status_code, subscribe_done_out.status_code);
635635
CHECK_EQ(subscribe_done.stream_count, subscribe_done_out.stream_count);
636-
CHECK_EQ(subscribe_done.reason_phrase, subscribe_done_out.reason_phrase);
636+
CHECK_EQ(subscribe_done.error_reason, subscribe_done_out.error_reason);
637637
}
638638

639639
TEST_CASE("SubscribeDone (content-exists) Message encode/decode")
@@ -644,7 +644,7 @@ TEST_CASE("SubscribeDone (content-exists) Message encode/decode")
644644
subscribe_done.subscribe_id = 0x1;
645645
subscribe_done.status_code = quicr::messages::SubscribeDoneStatusCode::kGoingAway;
646646
subscribe_done.stream_count = 0x0;
647-
subscribe_done.reason_phrase = Bytes{ 0x0 };
647+
subscribe_done.error_reason = Bytes{ 0x0 };
648648

649649
buffer << subscribe_done;
650650

@@ -653,7 +653,7 @@ TEST_CASE("SubscribeDone (content-exists) Message encode/decode")
653653
CHECK_EQ(subscribe_done.subscribe_id, subscribe_done_out.subscribe_id);
654654
CHECK_EQ(subscribe_done.status_code, subscribe_done_out.status_code);
655655
CHECK_EQ(subscribe_done.stream_count, subscribe_done_out.stream_count);
656-
CHECK_EQ(subscribe_done.reason_phrase, subscribe_done_out.reason_phrase);
656+
CHECK_EQ(subscribe_done.error_reason, subscribe_done_out.error_reason);
657657
}
658658

659659
TEST_CASE("ClientSetup Message encode/decode")
@@ -872,14 +872,14 @@ TEST_CASE("Subscribe Announces Error encode/decode")
872872
auto msg = SubscribeAnnouncesError{};
873873
msg.track_namespace_prefix = TrackNamespace{ "cisco"s, "meetings"s, "video"s, "1080p"s };
874874
msg.error_code = quicr::messages::SubscribeAnnouncesErrorCode::kNamespacePrefixUnknown;
875-
msg.reason_phrase = Bytes{ 0x1, 0x2, 0x3 };
875+
msg.error_reason = Bytes{ 0x1, 0x2, 0x3 };
876876
buffer << msg;
877877

878878
SubscribeAnnouncesError msg_out;
879879
CHECK(VerifyCtrl(buffer, static_cast<std::uint64_t>(ControlMessageType::kSubscribeAnnouncesError), msg_out));
880880
CHECK_EQ(msg.track_namespace_prefix, msg_out.track_namespace_prefix);
881881
CHECK_EQ(msg.error_code, msg_out.error_code);
882-
CHECK_EQ(msg.reason_phrase, msg_out.reason_phrase);
882+
CHECK_EQ(msg.error_reason, msg_out.error_reason);
883883
}
884884

885885
using TestKVP64 = KeyValuePair<std::uint64_t>;

0 commit comments

Comments
 (0)