| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/socket/ssl_client_socket.h" | 5 #include "net/socket/ssl_client_socket.h" |
| 6 | 6 |
| 7 #include "net/base/address_list.h" | 7 #include "net/base/address_list.h" |
| 8 #include "net/base/cert_verifier.h" | 8 #include "net/base/cert_verifier.h" |
| 9 #include "net/base/host_resolver.h" | 9 #include "net/base/host_resolver.h" |
| 10 #include "net/base/io_buffer.h" | 10 #include "net/base/io_buffer.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 class SSLClientSocketTest : public PlatformTest { | 27 class SSLClientSocketTest : public PlatformTest { |
| 28 public: | 28 public: |
| 29 SSLClientSocketTest() | 29 SSLClientSocketTest() |
| 30 : socket_factory_(net::ClientSocketFactory::GetDefaultFactory()), | 30 : socket_factory_(net::ClientSocketFactory::GetDefaultFactory()), |
| 31 cert_verifier_(new net::CertVerifier) { | 31 cert_verifier_(new net::CertVerifier) { |
| 32 } | 32 } |
| 33 | 33 |
| 34 protected: | 34 protected: |
| 35 net::SSLClientSocket* CreateSSLClientSocket( | 35 net::SSLClientSocket* CreateSSLClientSocket( |
| 36 net::ClientSocket* transport_socket, | 36 net::StreamSocket* transport_socket, |
| 37 const net::HostPortPair& host_and_port, | 37 const net::HostPortPair& host_and_port, |
| 38 const net::SSLConfig& ssl_config) { | 38 const net::SSLConfig& ssl_config) { |
| 39 return socket_factory_->CreateSSLClientSocket(transport_socket, | 39 return socket_factory_->CreateSSLClientSocket(transport_socket, |
| 40 host_and_port, | 40 host_and_port, |
| 41 ssl_config, | 41 ssl_config, |
| 42 NULL, | 42 NULL, |
| 43 cert_verifier_.get()); | 43 cert_verifier_.get()); |
| 44 } | 44 } |
| 45 | 45 |
| 46 net::ClientSocketFactory* socket_factory_; | 46 net::ClientSocketFactory* socket_factory_; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 65 | 65 |
| 66 TEST_F(SSLClientSocketTest, Connect) { | 66 TEST_F(SSLClientSocketTest, Connect) { |
| 67 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); | 67 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); |
| 68 ASSERT_TRUE(test_server.Start()); | 68 ASSERT_TRUE(test_server.Start()); |
| 69 | 69 |
| 70 net::AddressList addr; | 70 net::AddressList addr; |
| 71 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 71 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 72 | 72 |
| 73 TestCompletionCallback callback; | 73 TestCompletionCallback callback; |
| 74 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); | 74 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); |
| 75 net::ClientSocket* transport = new net::TCPClientSocket( | 75 net::StreamSocket* transport = new net::TCPClientSocket( |
| 76 addr, &log, net::NetLog::Source()); | 76 addr, &log, net::NetLog::Source()); |
| 77 int rv = transport->Connect(&callback); | 77 int rv = transport->Connect(&callback); |
| 78 if (rv == net::ERR_IO_PENDING) | 78 if (rv == net::ERR_IO_PENDING) |
| 79 rv = callback.WaitForResult(); | 79 rv = callback.WaitForResult(); |
| 80 EXPECT_EQ(net::OK, rv); | 80 EXPECT_EQ(net::OK, rv); |
| 81 | 81 |
| 82 scoped_ptr<net::SSLClientSocket> sock( | 82 scoped_ptr<net::SSLClientSocket> sock( |
| 83 socket_factory_->CreateSSLClientSocket( | 83 socket_factory_->CreateSSLClientSocket( |
| 84 transport, test_server.host_port_pair(), kDefaultSSLConfig, | 84 transport, test_server.host_port_pair(), kDefaultSSLConfig, |
| 85 NULL, cert_verifier_.get())); | 85 NULL, cert_verifier_.get())); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 107 net::TestServer::HTTPSOptions https_options( | 107 net::TestServer::HTTPSOptions https_options( |
| 108 net::TestServer::HTTPSOptions::CERT_EXPIRED); | 108 net::TestServer::HTTPSOptions::CERT_EXPIRED); |
| 109 net::TestServer test_server(https_options, FilePath()); | 109 net::TestServer test_server(https_options, FilePath()); |
| 110 ASSERT_TRUE(test_server.Start()); | 110 ASSERT_TRUE(test_server.Start()); |
| 111 | 111 |
| 112 net::AddressList addr; | 112 net::AddressList addr; |
| 113 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 113 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 114 | 114 |
| 115 TestCompletionCallback callback; | 115 TestCompletionCallback callback; |
| 116 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); | 116 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); |
| 117 net::ClientSocket* transport = new net::TCPClientSocket( | 117 net::StreamSocket* transport = new net::TCPClientSocket( |
| 118 addr, &log, net::NetLog::Source()); | 118 addr, &log, net::NetLog::Source()); |
| 119 int rv = transport->Connect(&callback); | 119 int rv = transport->Connect(&callback); |
| 120 if (rv == net::ERR_IO_PENDING) | 120 if (rv == net::ERR_IO_PENDING) |
| 121 rv = callback.WaitForResult(); | 121 rv = callback.WaitForResult(); |
| 122 EXPECT_EQ(net::OK, rv); | 122 EXPECT_EQ(net::OK, rv); |
| 123 | 123 |
| 124 scoped_ptr<net::SSLClientSocket> sock( | 124 scoped_ptr<net::SSLClientSocket> sock( |
| 125 CreateSSLClientSocket(transport, test_server.host_port_pair(), | 125 CreateSSLClientSocket(transport, test_server.host_port_pair(), |
| 126 kDefaultSSLConfig)); | 126 kDefaultSSLConfig)); |
| 127 | 127 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 150 net::TestServer::HTTPSOptions https_options( | 150 net::TestServer::HTTPSOptions https_options( |
| 151 net::TestServer::HTTPSOptions::CERT_MISMATCHED_NAME); | 151 net::TestServer::HTTPSOptions::CERT_MISMATCHED_NAME); |
| 152 net::TestServer test_server(https_options, FilePath()); | 152 net::TestServer test_server(https_options, FilePath()); |
| 153 ASSERT_TRUE(test_server.Start()); | 153 ASSERT_TRUE(test_server.Start()); |
| 154 | 154 |
| 155 net::AddressList addr; | 155 net::AddressList addr; |
| 156 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 156 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 157 | 157 |
| 158 TestCompletionCallback callback; | 158 TestCompletionCallback callback; |
| 159 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); | 159 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); |
| 160 net::ClientSocket* transport = new net::TCPClientSocket( | 160 net::StreamSocket* transport = new net::TCPClientSocket( |
| 161 addr, &log, net::NetLog::Source()); | 161 addr, &log, net::NetLog::Source()); |
| 162 int rv = transport->Connect(&callback); | 162 int rv = transport->Connect(&callback); |
| 163 if (rv == net::ERR_IO_PENDING) | 163 if (rv == net::ERR_IO_PENDING) |
| 164 rv = callback.WaitForResult(); | 164 rv = callback.WaitForResult(); |
| 165 EXPECT_EQ(net::OK, rv); | 165 EXPECT_EQ(net::OK, rv); |
| 166 | 166 |
| 167 scoped_ptr<net::SSLClientSocket> sock( | 167 scoped_ptr<net::SSLClientSocket> sock( |
| 168 CreateSSLClientSocket(transport, test_server.host_port_pair(), | 168 CreateSSLClientSocket(transport, test_server.host_port_pair(), |
| 169 kDefaultSSLConfig)); | 169 kDefaultSSLConfig)); |
| 170 | 170 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 195 net::TestServer::HTTPSOptions https_options; | 195 net::TestServer::HTTPSOptions https_options; |
| 196 https_options.request_client_certificate = true; | 196 https_options.request_client_certificate = true; |
| 197 net::TestServer test_server(https_options, FilePath()); | 197 net::TestServer test_server(https_options, FilePath()); |
| 198 ASSERT_TRUE(test_server.Start()); | 198 ASSERT_TRUE(test_server.Start()); |
| 199 | 199 |
| 200 net::AddressList addr; | 200 net::AddressList addr; |
| 201 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 201 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 202 | 202 |
| 203 TestCompletionCallback callback; | 203 TestCompletionCallback callback; |
| 204 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); | 204 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); |
| 205 net::ClientSocket* transport = new net::TCPClientSocket( | 205 net::StreamSocket* transport = new net::TCPClientSocket( |
| 206 addr, &log, net::NetLog::Source()); | 206 addr, &log, net::NetLog::Source()); |
| 207 int rv = transport->Connect(&callback); | 207 int rv = transport->Connect(&callback); |
| 208 if (rv == net::ERR_IO_PENDING) | 208 if (rv == net::ERR_IO_PENDING) |
| 209 rv = callback.WaitForResult(); | 209 rv = callback.WaitForResult(); |
| 210 EXPECT_EQ(net::OK, rv); | 210 EXPECT_EQ(net::OK, rv); |
| 211 | 211 |
| 212 scoped_ptr<net::SSLClientSocket> sock( | 212 scoped_ptr<net::SSLClientSocket> sock( |
| 213 CreateSSLClientSocket(transport, test_server.host_port_pair(), | 213 CreateSSLClientSocket(transport, test_server.host_port_pair(), |
| 214 kDefaultSSLConfig)); | 214 kDefaultSSLConfig)); |
| 215 | 215 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 net::TestServer::HTTPSOptions https_options; | 255 net::TestServer::HTTPSOptions https_options; |
| 256 https_options.request_client_certificate = true; | 256 https_options.request_client_certificate = true; |
| 257 net::TestServer test_server(https_options, FilePath()); | 257 net::TestServer test_server(https_options, FilePath()); |
| 258 ASSERT_TRUE(test_server.Start()); | 258 ASSERT_TRUE(test_server.Start()); |
| 259 | 259 |
| 260 net::AddressList addr; | 260 net::AddressList addr; |
| 261 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 261 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 262 | 262 |
| 263 TestCompletionCallback callback; | 263 TestCompletionCallback callback; |
| 264 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); | 264 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); |
| 265 net::ClientSocket* transport = new net::TCPClientSocket( | 265 net::StreamSocket* transport = new net::TCPClientSocket( |
| 266 addr, &log, net::NetLog::Source()); | 266 addr, &log, net::NetLog::Source()); |
| 267 int rv = transport->Connect(&callback); | 267 int rv = transport->Connect(&callback); |
| 268 if (rv == net::ERR_IO_PENDING) | 268 if (rv == net::ERR_IO_PENDING) |
| 269 rv = callback.WaitForResult(); | 269 rv = callback.WaitForResult(); |
| 270 EXPECT_EQ(net::OK, rv); | 270 EXPECT_EQ(net::OK, rv); |
| 271 | 271 |
| 272 net::SSLConfig ssl_config = kDefaultSSLConfig; | 272 net::SSLConfig ssl_config = kDefaultSSLConfig; |
| 273 ssl_config.send_client_cert = true; | 273 ssl_config.send_client_cert = true; |
| 274 ssl_config.client_cert = NULL; | 274 ssl_config.client_cert = NULL; |
| 275 | 275 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 305 // - Server sends data unexpectedly. | 305 // - Server sends data unexpectedly. |
| 306 | 306 |
| 307 TEST_F(SSLClientSocketTest, Read) { | 307 TEST_F(SSLClientSocketTest, Read) { |
| 308 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); | 308 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); |
| 309 ASSERT_TRUE(test_server.Start()); | 309 ASSERT_TRUE(test_server.Start()); |
| 310 | 310 |
| 311 net::AddressList addr; | 311 net::AddressList addr; |
| 312 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 312 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 313 | 313 |
| 314 TestCompletionCallback callback; | 314 TestCompletionCallback callback; |
| 315 net::ClientSocket* transport = new net::TCPClientSocket( | 315 net::StreamSocket* transport = new net::TCPClientSocket( |
| 316 addr, NULL, net::NetLog::Source()); | 316 addr, NULL, net::NetLog::Source()); |
| 317 int rv = transport->Connect(&callback); | 317 int rv = transport->Connect(&callback); |
| 318 if (rv == net::ERR_IO_PENDING) | 318 if (rv == net::ERR_IO_PENDING) |
| 319 rv = callback.WaitForResult(); | 319 rv = callback.WaitForResult(); |
| 320 EXPECT_EQ(net::OK, rv); | 320 EXPECT_EQ(net::OK, rv); |
| 321 | 321 |
| 322 scoped_ptr<net::SSLClientSocket> sock( | 322 scoped_ptr<net::SSLClientSocket> sock( |
| 323 CreateSSLClientSocket(transport, test_server.host_port_pair(), | 323 CreateSSLClientSocket(transport, test_server.host_port_pair(), |
| 324 kDefaultSSLConfig)); | 324 kDefaultSSLConfig)); |
| 325 | 325 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 TEST_F(SSLClientSocketTest, Read_FullDuplex) { | 360 TEST_F(SSLClientSocketTest, Read_FullDuplex) { |
| 361 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); | 361 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); |
| 362 ASSERT_TRUE(test_server.Start()); | 362 ASSERT_TRUE(test_server.Start()); |
| 363 | 363 |
| 364 net::AddressList addr; | 364 net::AddressList addr; |
| 365 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 365 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 366 | 366 |
| 367 TestCompletionCallback callback; // Used for everything except Write. | 367 TestCompletionCallback callback; // Used for everything except Write. |
| 368 TestCompletionCallback callback2; // Used for Write only. | 368 TestCompletionCallback callback2; // Used for Write only. |
| 369 | 369 |
| 370 net::ClientSocket* transport = new net::TCPClientSocket( | 370 net::StreamSocket* transport = new net::TCPClientSocket( |
| 371 addr, NULL, net::NetLog::Source()); | 371 addr, NULL, net::NetLog::Source()); |
| 372 int rv = transport->Connect(&callback); | 372 int rv = transport->Connect(&callback); |
| 373 if (rv == net::ERR_IO_PENDING) | 373 if (rv == net::ERR_IO_PENDING) |
| 374 rv = callback.WaitForResult(); | 374 rv = callback.WaitForResult(); |
| 375 EXPECT_EQ(net::OK, rv); | 375 EXPECT_EQ(net::OK, rv); |
| 376 | 376 |
| 377 scoped_ptr<net::SSLClientSocket> sock( | 377 scoped_ptr<net::SSLClientSocket> sock( |
| 378 socket_factory_->CreateSSLClientSocket( | 378 socket_factory_->CreateSSLClientSocket( |
| 379 transport, test_server.host_port_pair(), kDefaultSSLConfig, | 379 transport, test_server.host_port_pair(), kDefaultSSLConfig, |
| 380 NULL, cert_verifier_.get())); | 380 NULL, cert_verifier_.get())); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 } | 415 } |
| 416 | 416 |
| 417 TEST_F(SSLClientSocketTest, Read_SmallChunks) { | 417 TEST_F(SSLClientSocketTest, Read_SmallChunks) { |
| 418 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); | 418 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); |
| 419 ASSERT_TRUE(test_server.Start()); | 419 ASSERT_TRUE(test_server.Start()); |
| 420 | 420 |
| 421 net::AddressList addr; | 421 net::AddressList addr; |
| 422 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 422 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 423 | 423 |
| 424 TestCompletionCallback callback; | 424 TestCompletionCallback callback; |
| 425 net::ClientSocket* transport = new net::TCPClientSocket( | 425 net::StreamSocket* transport = new net::TCPClientSocket( |
| 426 addr, NULL, net::NetLog::Source()); | 426 addr, NULL, net::NetLog::Source()); |
| 427 int rv = transport->Connect(&callback); | 427 int rv = transport->Connect(&callback); |
| 428 if (rv == net::ERR_IO_PENDING) | 428 if (rv == net::ERR_IO_PENDING) |
| 429 rv = callback.WaitForResult(); | 429 rv = callback.WaitForResult(); |
| 430 EXPECT_EQ(net::OK, rv); | 430 EXPECT_EQ(net::OK, rv); |
| 431 | 431 |
| 432 scoped_ptr<net::SSLClientSocket> sock( | 432 scoped_ptr<net::SSLClientSocket> sock( |
| 433 CreateSSLClientSocket(transport, test_server.host_port_pair(), | 433 CreateSSLClientSocket(transport, test_server.host_port_pair(), |
| 434 kDefaultSSLConfig)); | 434 kDefaultSSLConfig)); |
| 435 | 435 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 465 } | 465 } |
| 466 | 466 |
| 467 TEST_F(SSLClientSocketTest, Read_Interrupted) { | 467 TEST_F(SSLClientSocketTest, Read_Interrupted) { |
| 468 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); | 468 net::TestServer test_server(net::TestServer::TYPE_HTTPS, FilePath()); |
| 469 ASSERT_TRUE(test_server.Start()); | 469 ASSERT_TRUE(test_server.Start()); |
| 470 | 470 |
| 471 net::AddressList addr; | 471 net::AddressList addr; |
| 472 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 472 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 473 | 473 |
| 474 TestCompletionCallback callback; | 474 TestCompletionCallback callback; |
| 475 net::ClientSocket* transport = new net::TCPClientSocket( | 475 net::StreamSocket* transport = new net::TCPClientSocket( |
| 476 addr, NULL, net::NetLog::Source()); | 476 addr, NULL, net::NetLog::Source()); |
| 477 int rv = transport->Connect(&callback); | 477 int rv = transport->Connect(&callback); |
| 478 if (rv == net::ERR_IO_PENDING) | 478 if (rv == net::ERR_IO_PENDING) |
| 479 rv = callback.WaitForResult(); | 479 rv = callback.WaitForResult(); |
| 480 EXPECT_EQ(net::OK, rv); | 480 EXPECT_EQ(net::OK, rv); |
| 481 | 481 |
| 482 scoped_ptr<net::SSLClientSocket> sock( | 482 scoped_ptr<net::SSLClientSocket> sock( |
| 483 CreateSSLClientSocket(transport, test_server.host_port_pair(), | 483 CreateSSLClientSocket(transport, test_server.host_port_pair(), |
| 484 kDefaultSSLConfig)); | 484 kDefaultSSLConfig)); |
| 485 | 485 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 535 // All reads and writes complete synchronously (async=false). | 535 // All reads and writes complete synchronously (async=false). |
| 536 net::MockRead data_reads[] = { | 536 net::MockRead data_reads[] = { |
| 537 net::MockRead(false, reinterpret_cast<const char*>(application_data), | 537 net::MockRead(false, reinterpret_cast<const char*>(application_data), |
| 538 arraysize(application_data)), | 538 arraysize(application_data)), |
| 539 net::MockRead(false, net::OK), | 539 net::MockRead(false, net::OK), |
| 540 }; | 540 }; |
| 541 | 541 |
| 542 net::StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 542 net::StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
| 543 NULL, 0); | 543 NULL, 0); |
| 544 | 544 |
| 545 net::ClientSocket* transport = | 545 net::StreamSocket* transport = |
| 546 new net::MockTCPClientSocket(addr, NULL, &data); | 546 new net::MockTCPClientSocket(addr, NULL, &data); |
| 547 int rv = transport->Connect(&callback); | 547 int rv = transport->Connect(&callback); |
| 548 if (rv == net::ERR_IO_PENDING) | 548 if (rv == net::ERR_IO_PENDING) |
| 549 rv = callback.WaitForResult(); | 549 rv = callback.WaitForResult(); |
| 550 EXPECT_EQ(net::OK, rv); | 550 EXPECT_EQ(net::OK, rv); |
| 551 | 551 |
| 552 scoped_ptr<net::SSLClientSocket> sock( | 552 scoped_ptr<net::SSLClientSocket> sock( |
| 553 CreateSSLClientSocket(transport, test_server.host_port_pair(), | 553 CreateSSLClientSocket(transport, test_server.host_port_pair(), |
| 554 kDefaultSSLConfig)); | 554 kDefaultSSLConfig)); |
| 555 | 555 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 573 https_options.bulk_ciphers = | 573 https_options.bulk_ciphers = |
| 574 net::TestServer::HTTPSOptions::BULK_CIPHER_RC4; | 574 net::TestServer::HTTPSOptions::BULK_CIPHER_RC4; |
| 575 net::TestServer test_server(https_options, FilePath()); | 575 net::TestServer test_server(https_options, FilePath()); |
| 576 ASSERT_TRUE(test_server.Start()); | 576 ASSERT_TRUE(test_server.Start()); |
| 577 | 577 |
| 578 net::AddressList addr; | 578 net::AddressList addr; |
| 579 ASSERT_TRUE(test_server.GetAddressList(&addr)); | 579 ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| 580 | 580 |
| 581 TestCompletionCallback callback; | 581 TestCompletionCallback callback; |
| 582 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); | 582 net::CapturingNetLog log(net::CapturingNetLog::kUnbounded); |
| 583 net::ClientSocket* transport = new net::TCPClientSocket( | 583 net::StreamSocket* transport = new net::TCPClientSocket( |
| 584 addr, &log, net::NetLog::Source()); | 584 addr, &log, net::NetLog::Source()); |
| 585 int rv = transport->Connect(&callback); | 585 int rv = transport->Connect(&callback); |
| 586 if (rv == net::ERR_IO_PENDING) | 586 if (rv == net::ERR_IO_PENDING) |
| 587 rv = callback.WaitForResult(); | 587 rv = callback.WaitForResult(); |
| 588 EXPECT_EQ(net::OK, rv); | 588 EXPECT_EQ(net::OK, rv); |
| 589 | 589 |
| 590 net::SSLConfig ssl_config; | 590 net::SSLConfig ssl_config; |
| 591 for (size_t i = 0; i < arraysize(kCiphersToDisable); ++i) | 591 for (size_t i = 0; i < arraysize(kCiphersToDisable); ++i) |
| 592 ssl_config.disabled_cipher_suites.push_back(kCiphersToDisable[i]); | 592 ssl_config.disabled_cipher_suites.push_back(kCiphersToDisable[i]); |
| 593 | 593 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 628 // to being an error such as a certificate name mismatch, which is | 628 // to being an error such as a certificate name mismatch, which is |
| 629 // client-only, the exact index of the SSL connect end depends on how | 629 // client-only, the exact index of the SSL connect end depends on how |
| 630 // quickly the test server closes the underlying socket. If the test server | 630 // quickly the test server closes the underlying socket. If the test server |
| 631 // closes before the IO message loop pumps messages, there may be a 0-byte | 631 // closes before the IO message loop pumps messages, there may be a 0-byte |
| 632 // Read event in the NetLog due to TCPClientSocket picking up the EOF. As a | 632 // Read event in the NetLog due to TCPClientSocket picking up the EOF. As a |
| 633 // result, the SSL connect end event will be the second-to-last entry, | 633 // result, the SSL connect end event will be the second-to-last entry, |
| 634 // rather than the last entry. | 634 // rather than the last entry. |
| 635 EXPECT_TRUE(LogContainsSSLConnectEndEvent(entries, -1) || | 635 EXPECT_TRUE(LogContainsSSLConnectEndEvent(entries, -1) || |
| 636 LogContainsSSLConnectEndEvent(entries, -2)); | 636 LogContainsSSLConnectEndEvent(entries, -2)); |
| 637 } | 637 } |
| OLD | NEW |