| Index: net/quic/crypto/quic_crypto_client_config.cc
|
| diff --git a/net/quic/crypto/quic_crypto_client_config.cc b/net/quic/crypto/quic_crypto_client_config.cc
|
| index b37befea03e661e50600e9ec3b5b2136cac00d8d..7d866a264098f5b3ea1811cdfc47964a8f57353f 100644
|
| --- a/net/quic/crypto/quic_crypto_client_config.cc
|
| +++ b/net/quic/crypto/quic_crypto_client_config.cc
|
| @@ -593,15 +593,56 @@ QuicErrorCode QuicCryptoClientConfig::ProcessRejection(
|
| if (rej.GetTaglist(kRREJ, &reject_reasons,
|
| &num_reject_reasons) == QUIC_NO_ERROR) {
|
| #if defined(DEBUG)
|
| + uint32 packed_error = 0;
|
| for (size_t i = 0; i < num_reject_reasons; ++i) {
|
| - DVLOG(1) << "Reasons for rejection: " << reject_reasons[i];
|
| + HandshakeFailureReason reason =
|
| + static_cast<HandshakeFailureReason>(reject_reasons[i]);
|
| + packed_error |= RejectReasonToPackedError(reason);
|
| }
|
| + DVLOG(1) << "Reasons for rejection: " << packed_error;
|
| #endif
|
| }
|
|
|
| return QUIC_NO_ERROR;
|
| }
|
|
|
| +uint32 QuicCryptoClientConfig::RejectReasonToPackedError(
|
| + HandshakeFailureReason reason) {
|
| + switch (reason) {
|
| + case HANDSHAKE_OK:
|
| + return 0;
|
| + case CLIENT_NONCE_UNKNOWN_FAILURE:
|
| + return 1u << 5;
|
| + case CLIENT_NONCE_INVALID_FAILURE:
|
| + return 2u << 5;
|
| + case SERVER_NONCE_INVALID_FAILURE:
|
| + return 1u << 10;
|
| + case SERVER_NONCE_DECRYPTION_FAILURE:
|
| + return 2u << 10;
|
| + case SERVER_NONCE_NOT_UNIQUE_FAILURE:
|
| + return 3u << 10;
|
| + case SERVER_CONFIG_INCHOATE_HELLO_FAILURE:
|
| + return 1u << 15;
|
| + case SERVER_CONFIG_UNKNOWN_CONFIG_FAILURE:
|
| + return 2u << 15;
|
| + case SOURCE_ADDRESS_TOKEN_INVALID_FAILURE:
|
| + return 1u << 20;
|
| + case SOURCE_ADDRESS_TOKEN_DECRYPTION_FAILURE:
|
| + return 2u << 20;
|
| + case SOURCE_ADDRESS_TOKEN_PARSE_FAILURE:
|
| + return 3u << 20;
|
| + case SOURCE_ADDRESS_TOKEN_DIFFERENT_IP_ADDRESS_FAILURE:
|
| + return 4u << 20;
|
| + case SOURCE_ADDRESS_TOKEN_CLOCK_SKEW_FAILURE:
|
| + return 5u << 20;
|
| + case SOURCE_ADDRESS_TOKEN_EXPIRED_FAILURE:
|
| + return 6u << 20;
|
| + default:
|
| + LOG(FATAL) << "Unsupported RejectReason: " << reason;
|
| + return 1u << 31;
|
| + }
|
| +}
|
| +
|
| QuicErrorCode QuicCryptoClientConfig::ProcessServerHello(
|
| const CryptoHandshakeMessage& server_hello,
|
| QuicConnectionId connection_id,
|
|
|