| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // A binary wrapper for QuicClient. | 5 // A binary wrapper for QuicClient. |
| 6 // Connects to a host using QUIC, sends a request to the provided URL, and | 6 // Connects to a host using QUIC, sends a request to the provided URL, and |
| 7 // displays the response. | 7 // displays the response. |
| 8 // | 8 // |
| 9 // Some usage examples: | 9 // Some usage examples: |
| 10 // | 10 // |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 | 107 |
| 108 class FakeCertVerifier : public net::CertVerifier { | 108 class FakeCertVerifier : public net::CertVerifier { |
| 109 public: | 109 public: |
| 110 int Verify(net::X509Certificate* cert, | 110 int Verify(net::X509Certificate* cert, |
| 111 const std::string& hostname, | 111 const std::string& hostname, |
| 112 const std::string& ocsp_response, | 112 const std::string& ocsp_response, |
| 113 int flags, | 113 int flags, |
| 114 net::CRLSet* crl_set, | 114 net::CRLSet* crl_set, |
| 115 net::CertVerifyResult* verify_result, | 115 net::CertVerifyResult* verify_result, |
| 116 const net::CompletionCallback& callback, | 116 const net::CompletionCallback& callback, |
| 117 scoped_ptr<net::CertVerifier::Request>* out_req, | 117 std::unique_ptr<net::CertVerifier::Request>* out_req, |
| 118 const net::BoundNetLog& net_log) override { | 118 const net::BoundNetLog& net_log) override { |
| 119 return net::OK; | 119 return net::OK; |
| 120 } | 120 } |
| 121 | 121 |
| 122 // Returns true if this CertVerifier supports stapled OCSP responses. | 122 // Returns true if this CertVerifier supports stapled OCSP responses. |
| 123 bool SupportsOCSPStapling() override { return false; } | 123 bool SupportsOCSPStapling() override { return false; } |
| 124 }; | 124 }; |
| 125 | 125 |
| 126 static bool DecodeHexString(const base::StringPiece& hex, std::string* bytes) { | 126 static bool DecodeHexString(const base::StringPiece& hex, std::string* bytes) { |
| 127 bytes->clear(); | 127 bytes->clear(); |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 // Build the client, and try to connect. | 268 // Build the client, and try to connect. |
| 269 net::EpollServer epoll_server; | 269 net::EpollServer epoll_server; |
| 270 net::QuicServerId server_id(url.host(), url.EffectiveIntPort(), | 270 net::QuicServerId server_id(url.host(), url.EffectiveIntPort(), |
| 271 net::PRIVACY_MODE_DISABLED); | 271 net::PRIVACY_MODE_DISABLED); |
| 272 net::QuicVersionVector versions = net::QuicSupportedVersions(); | 272 net::QuicVersionVector versions = net::QuicSupportedVersions(); |
| 273 if (FLAGS_quic_version != -1) { | 273 if (FLAGS_quic_version != -1) { |
| 274 versions.clear(); | 274 versions.clear(); |
| 275 versions.push_back(static_cast<net::QuicVersion>(FLAGS_quic_version)); | 275 versions.push_back(static_cast<net::QuicVersion>(FLAGS_quic_version)); |
| 276 } | 276 } |
| 277 // For secure QUIC we need to verify the cert chain. | 277 // For secure QUIC we need to verify the cert chain. |
| 278 scoped_ptr<CertVerifier> cert_verifier(CertVerifier::CreateDefault()); | 278 std::unique_ptr<CertVerifier> cert_verifier(CertVerifier::CreateDefault()); |
| 279 if (line->HasSwitch("disable-certificate-verification")) { | 279 if (line->HasSwitch("disable-certificate-verification")) { |
| 280 cert_verifier.reset(new FakeCertVerifier()); | 280 cert_verifier.reset(new FakeCertVerifier()); |
| 281 } | 281 } |
| 282 scoped_ptr<TransportSecurityState> transport_security_state( | 282 std::unique_ptr<TransportSecurityState> transport_security_state( |
| 283 new TransportSecurityState); | 283 new TransportSecurityState); |
| 284 transport_security_state.reset(new TransportSecurityState); | 284 transport_security_state.reset(new TransportSecurityState); |
| 285 scoped_ptr<CTVerifier> ct_verifier(new MultiLogCTVerifier()); | 285 std::unique_ptr<CTVerifier> ct_verifier(new MultiLogCTVerifier()); |
| 286 ProofVerifierChromium* proof_verifier = new ProofVerifierChromium( | 286 ProofVerifierChromium* proof_verifier = new ProofVerifierChromium( |
| 287 cert_verifier.get(), nullptr, transport_security_state.get(), | 287 cert_verifier.get(), nullptr, transport_security_state.get(), |
| 288 ct_verifier.get()); | 288 ct_verifier.get()); |
| 289 net::QuicClient client(net::IPEndPoint(ip_addr, FLAGS_port), server_id, | 289 net::QuicClient client(net::IPEndPoint(ip_addr, FLAGS_port), server_id, |
| 290 versions, &epoll_server, proof_verifier); | 290 versions, &epoll_server, proof_verifier); |
| 291 client.set_initial_max_packet_length( | 291 client.set_initial_max_packet_length( |
| 292 FLAGS_initial_mtu != 0 ? FLAGS_initial_mtu : net::kDefaultMaxPacketSize); | 292 FLAGS_initial_mtu != 0 ? FLAGS_initial_mtu : net::kDefaultMaxPacketSize); |
| 293 if (!client.Initialize()) { | 293 if (!client.Initialize()) { |
| 294 cerr << "Failed to initialize client." << endl; | 294 cerr << "Failed to initialize client." << endl; |
| 295 return 1; | 295 return 1; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 return 0; | 386 return 0; |
| 387 } else { | 387 } else { |
| 388 cout << "Request failed (redirect " << response_code << ")." << endl; | 388 cout << "Request failed (redirect " << response_code << ")." << endl; |
| 389 return 1; | 389 return 1; |
| 390 } | 390 } |
| 391 } else { | 391 } else { |
| 392 cerr << "Request failed (" << response_code << ")." << endl; | 392 cerr << "Request failed (" << response_code << ")." << endl; |
| 393 return 1; | 393 return 1; |
| 394 } | 394 } |
| 395 } | 395 } |
| OLD | NEW |