| Index: net/quic/quic_protocol.cc
|
| diff --git a/net/quic/quic_protocol.cc b/net/quic/quic_protocol.cc
|
| index a45c4afb8f52c06d54661cdec2af99351c2426e5..69b0205464132fd7598c0267bdb7c76dcee5ca48 100644
|
| --- a/net/quic/quic_protocol.cc
|
| +++ b/net/quic/quic_protocol.cc
|
| @@ -162,7 +162,7 @@ QuicVersion QuicTagToQuicVersion(const QuicTag version_tag) {
|
| }
|
| // Reading from the client so this should not be considered an ERROR.
|
| DVLOG(1) << "Unsupported QuicTag version: "
|
| - << QuicUtils::TagToString(version_tag);
|
| + << QuicUtils::TagToString(version_tag);
|
| return QUIC_VERSION_UNSUPPORTED;
|
| }
|
|
|
| @@ -275,6 +275,83 @@ QuicCongestionFeedbackFrame::QuicCongestionFeedbackFrame() {
|
| QuicCongestionFeedbackFrame::~QuicCongestionFeedbackFrame() {
|
| }
|
|
|
| +ostream& operator<<(ostream& os, const QuicFrame& frame) {
|
| + switch (frame.type) {
|
| + case PADDING_FRAME: {
|
| + os << "type { PADDING_FRAME } ";
|
| + break;
|
| + }
|
| + case RST_STREAM_FRAME: {
|
| + os << "type { " << RST_STREAM_FRAME << " } " << *(frame.rst_stream_frame);
|
| + break;
|
| + }
|
| + case CONNECTION_CLOSE_FRAME: {
|
| + os << "type { CONNECTION_CLOSE_FRAME } "
|
| + << *(frame.connection_close_frame);
|
| + break;
|
| + }
|
| + case GOAWAY_FRAME: {
|
| + os << "type { GOAWAY_FRAME } " << *(frame.goaway_frame);
|
| + break;
|
| + }
|
| + case STREAM_FRAME: {
|
| + os << "type { STREAM_FRAME } " << *(frame.stream_frame);
|
| + break;
|
| + }
|
| + case ACK_FRAME: {
|
| + os << "type { ACK_FRAME } " << *(frame.ack_frame);
|
| + break;
|
| + }
|
| + case CONGESTION_FEEDBACK_FRAME: {
|
| + os << "type { CONGESTION_FEEDBACK_FRAME } "
|
| + << *(frame.congestion_feedback_frame);
|
| + break;
|
| + }
|
| + default: {
|
| + LOG(ERROR) << "Unknown frame type: " << frame.type;
|
| + break;
|
| + }
|
| + }
|
| + return os;
|
| +}
|
| +
|
| +ostream& operator<<(ostream& os, const QuicRstStreamFrame& rst_frame) {
|
| + os << "stream_id { " << rst_frame.stream_id << " } "
|
| + << "error_code { " << rst_frame.error_code << " } "
|
| + << "error_details { " << rst_frame.error_details << " }\n";
|
| + return os;
|
| +}
|
| +
|
| +ostream& operator<<(ostream& os,
|
| + const QuicConnectionCloseFrame& connection_close_frame) {
|
| + os << "error_code { " << connection_close_frame.error_code << " } "
|
| + << "error_details { " << connection_close_frame.error_details << " }\n";
|
| + return os;
|
| +}
|
| +
|
| +ostream& operator<<(ostream& os, const QuicGoAwayFrame& goaway_frame) {
|
| + os << "error_code { " << goaway_frame.error_code << " } "
|
| + << "last_good_stream_id { " << goaway_frame.last_good_stream_id << " } "
|
| + << "reason_phrase { " << goaway_frame.reason_phrase << " }\n";
|
| + return os;
|
| +}
|
| +
|
| +ostream& operator<<(ostream& os, const QuicStreamFrame& stream_frame) {
|
| + os << "stream_id { " << stream_frame.stream_id << " } "
|
| + << "fin { " << stream_frame.fin << " } "
|
| + << "offset { " << stream_frame.offset << " } "
|
| + << "data { "
|
| + << QuicUtils::StringToHexASCIIDump(*(stream_frame.GetDataAsString()))
|
| + << " }\n";
|
| + return os;
|
| +}
|
| +
|
| +ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) {
|
| + os << "sent info { " << ack_frame.sent_info << " } "
|
| + << "received info { " << ack_frame.received_info << " }\n";
|
| + return os;
|
| +}
|
| +
|
| ostream& operator<<(ostream& os,
|
| const QuicCongestionFeedbackFrame& congestion_frame) {
|
| os << "type: " << congestion_frame.type;
|
| @@ -309,12 +386,6 @@ ostream& operator<<(ostream& os,
|
| return os;
|
| }
|
|
|
| -ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) {
|
| - os << "sent info { " << ack_frame.sent_info << " } "
|
| - << "received info { " << ack_frame.received_info << " }\n";
|
| - return os;
|
| -}
|
| -
|
| CongestionFeedbackMessageFixRate::CongestionFeedbackMessageFixRate()
|
| : bitrate(QuicBandwidth::Zero()) {
|
| }
|
|
|