Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: net/tools/quic/stateless_rejector.cc

Issue 2511643002: Refactoring output of ProofSource::GetProof (no functional changes). (Closed)
Patch Set: Refactoring output of ProofSource::GetProof (no functional changes). Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/tools/quic/stateless_rejector.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/tools/quic/stateless_rejector.h" 5 #include "net/tools/quic/stateless_rejector.h"
6 6
7 #include "net/quic/core/quic_bug_tracker.h" 7 #include "net/quic/core/quic_bug_tracker.h"
8 #include "net/quic/core/quic_crypto_server_stream.h" 8 #include "net/quic/core/quic_crypto_server_stream.h"
9 #include "net/quic/core/quic_flags.h" 9 #include "net/quic/core/quic_flags.h"
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 version_(version), 48 version_(version),
49 versions_(versions), 49 versions_(versions),
50 connection_id_(0), 50 connection_id_(0),
51 chlo_packet_size_(chlo_packet_size), 51 chlo_packet_size_(chlo_packet_size),
52 client_address_(client_address), 52 client_address_(client_address),
53 server_address_(server_address), 53 server_address_(server_address),
54 clock_(clock), 54 clock_(clock),
55 random_(random), 55 random_(random),
56 crypto_config_(crypto_config), 56 crypto_config_(crypto_config),
57 compressed_certs_cache_(compressed_certs_cache), 57 compressed_certs_cache_(compressed_certs_cache),
58 proof_(new QuicCryptoProof), 58 signed_config_(new QuicSignedServerConfig),
59 params_(new QuicCryptoNegotiatedParameters) {} 59 params_(new QuicCryptoNegotiatedParameters) {}
60 60
61 StatelessRejector::~StatelessRejector() {} 61 StatelessRejector::~StatelessRejector() {}
62 62
63 void StatelessRejector::OnChlo(QuicVersion version, 63 void StatelessRejector::OnChlo(QuicVersion version,
64 QuicConnectionId connection_id, 64 QuicConnectionId connection_id,
65 QuicConnectionId server_designated_connection_id, 65 QuicConnectionId server_designated_connection_id,
66 const CryptoHandshakeMessage& message) { 66 const CryptoHandshakeMessage& message) {
67 DCHECK_EQ(kCHLO, message.tag()); 67 DCHECK_EQ(kCHLO, message.tag());
68 DCHECK_NE(connection_id, server_designated_connection_id); 68 DCHECK_NE(connection_id, server_designated_connection_id);
(...skipping 14 matching lines...) Expand all
83 83
84 void StatelessRejector::Process(std::unique_ptr<StatelessRejector> rejector, 84 void StatelessRejector::Process(std::unique_ptr<StatelessRejector> rejector,
85 std::unique_ptr<ProcessDoneCallback> done_cb) { 85 std::unique_ptr<ProcessDoneCallback> done_cb) {
86 QUIC_BUG_IF(rejector->state() != UNKNOWN) << "StatelessRejector::Process " 86 QUIC_BUG_IF(rejector->state() != UNKNOWN) << "StatelessRejector::Process "
87 "called for a rejector which " 87 "called for a rejector which "
88 "has already made a decision"; 88 "has already made a decision";
89 StatelessRejector* rejector_ptr = rejector.get(); 89 StatelessRejector* rejector_ptr = rejector.get();
90 rejector_ptr->crypto_config_->ValidateClientHello( 90 rejector_ptr->crypto_config_->ValidateClientHello(
91 rejector_ptr->chlo_, rejector_ptr->client_address_.address(), 91 rejector_ptr->chlo_, rejector_ptr->client_address_.address(),
92 rejector_ptr->server_address_.address(), rejector_ptr->version_, 92 rejector_ptr->server_address_.address(), rejector_ptr->version_,
93 rejector_ptr->clock_, rejector_ptr->proof_, 93 rejector_ptr->clock_, rejector_ptr->signed_config_,
94 std::unique_ptr<ValidateCallback>( 94 std::unique_ptr<ValidateCallback>(
95 new ValidateCallback(std::move(rejector), std::move(done_cb)))); 95 new ValidateCallback(std::move(rejector), std::move(done_cb))));
96 } 96 }
97 97
98 class StatelessRejector::ProcessClientHelloCallback 98 class StatelessRejector::ProcessClientHelloCallback
99 : public ProcessClientHelloResultCallback { 99 : public ProcessClientHelloResultCallback {
100 public: 100 public:
101 ProcessClientHelloCallback( 101 ProcessClientHelloCallback(
102 std::unique_ptr<StatelessRejector> rejector, 102 std::unique_ptr<StatelessRejector> rejector,
103 std::unique_ptr<StatelessRejector::ProcessDoneCallback> done_cb) 103 std::unique_ptr<StatelessRejector::ProcessDoneCallback> done_cb)
(...skipping 20 matching lines...) Expand all
124 scoped_refptr<ValidateClientHelloResultCallback::Result> result, 124 scoped_refptr<ValidateClientHelloResultCallback::Result> result,
125 std::unique_ptr<StatelessRejector> rejector, 125 std::unique_ptr<StatelessRejector> rejector,
126 std::unique_ptr<StatelessRejector::ProcessDoneCallback> done_cb) { 126 std::unique_ptr<StatelessRejector::ProcessDoneCallback> done_cb) {
127 std::unique_ptr<ProcessClientHelloCallback> cb( 127 std::unique_ptr<ProcessClientHelloCallback> cb(
128 new ProcessClientHelloCallback(std::move(rejector), std::move(done_cb))); 128 new ProcessClientHelloCallback(std::move(rejector), std::move(done_cb)));
129 crypto_config_->ProcessClientHello( 129 crypto_config_->ProcessClientHello(
130 result, 130 result,
131 /*reject_only=*/true, connection_id_, server_address_.address(), 131 /*reject_only=*/true, connection_id_, server_address_.address(),
132 client_address_, version_, versions_, 132 client_address_, version_, versions_,
133 /*use_stateless_rejects=*/true, server_designated_connection_id_, clock_, 133 /*use_stateless_rejects=*/true, server_designated_connection_id_, clock_,
134 random_, compressed_certs_cache_, params_, proof_, 134 random_, compressed_certs_cache_, params_, signed_config_,
135 QuicCryptoStream::CryptoMessageFramingOverhead(version_), 135 QuicCryptoStream::CryptoMessageFramingOverhead(version_),
136 chlo_packet_size_, std::move(cb)); 136 chlo_packet_size_, std::move(cb));
137 } 137 }
138 138
139 void StatelessRejector::ProcessClientHelloDone( 139 void StatelessRejector::ProcessClientHelloDone(
140 QuicErrorCode error, 140 QuicErrorCode error,
141 const std::string& error_details, 141 const std::string& error_details,
142 std::unique_ptr<CryptoHandshakeMessage> message, 142 std::unique_ptr<CryptoHandshakeMessage> message,
143 std::unique_ptr<StatelessRejector> rejector, 143 std::unique_ptr<StatelessRejector> rejector,
144 std::unique_ptr<StatelessRejector::ProcessDoneCallback> done_cb) { 144 std::unique_ptr<StatelessRejector::ProcessDoneCallback> done_cb) {
145 reply_ = std::move(message); 145 reply_ = std::move(message);
146 146
147 if (error != QUIC_NO_ERROR) { 147 if (error != QUIC_NO_ERROR) {
148 error_ = error; 148 error_ = error;
149 error_details_ = error_details; 149 error_details_ = error_details;
150 state_ = FAILED; 150 state_ = FAILED;
151 } else if (reply_->tag() == kSREJ) { 151 } else if (reply_->tag() == kSREJ) {
152 state_ = REJECTED; 152 state_ = REJECTED;
153 } else { 153 } else {
154 state_ = ACCEPTED; 154 state_ = ACCEPTED;
155 } 155 }
156 done_cb->Run(std::move(rejector)); 156 done_cb->Run(std::move(rejector));
157 } 157 }
158 158
159 } // namespace net 159 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/stateless_rejector.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698