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 #include "net/socket/ssl_client_socket.h" | 5 #include "net/socket/ssl_client_socket.h" |
6 | 6 |
7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 new TCPClientSocket(addr(), NULL, NetLog::Source()))); | 851 new TCPClientSocket(addr(), NULL, NetLog::Source()))); |
852 real_transport.reset( | 852 real_transport.reset( |
853 new SynchronousErrorStreamSocket(real_transport.Pass())); | 853 new SynchronousErrorStreamSocket(real_transport.Pass())); |
854 | 854 |
855 scoped_ptr<FakeBlockingStreamSocket> transport( | 855 scoped_ptr<FakeBlockingStreamSocket> transport( |
856 new FakeBlockingStreamSocket(real_transport.Pass())); | 856 new FakeBlockingStreamSocket(real_transport.Pass())); |
857 int rv = callback->GetResult(transport->Connect(callback->callback())); | 857 int rv = callback->GetResult(transport->Connect(callback->callback())); |
858 EXPECT_EQ(OK, rv); | 858 EXPECT_EQ(OK, rv); |
859 | 859 |
860 FakeBlockingStreamSocket* raw_transport = transport.get(); | 860 FakeBlockingStreamSocket* raw_transport = transport.get(); |
861 scoped_ptr<SSLClientSocket> sock = | 861 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket( |
862 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 862 transport.Pass(), test_server()->host_port_pair(), client_config); |
863 test_server()->host_port_pair(), | |
864 client_config); | |
865 | 863 |
866 if (monitor_handshake_callback_) { | 864 if (monitor_handshake_callback_) { |
867 sock->SetHandshakeCompletionCallback( | 865 sock->SetHandshakeCompletionCallback( |
868 base::Bind(&SSLClientSocketTest::RecordCompletedHandshake, | 866 base::Bind(&SSLClientSocketTest::RecordCompletedHandshake, |
869 base::Unretained(this))); | 867 base::Unretained(this))); |
870 } | 868 } |
871 | 869 |
872 // Connect. Stop before the client processes the first server leg | 870 // Connect. Stop before the client processes the first server leg |
873 // (ServerHello, etc.) | 871 // (ServerHello, etc.) |
874 raw_transport->BlockReadResult(); | 872 raw_transport->BlockReadResult(); |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1325 scoped_ptr<SynchronousErrorStreamSocket> transport( | 1323 scoped_ptr<SynchronousErrorStreamSocket> transport( |
1326 new SynchronousErrorStreamSocket(real_transport.Pass())); | 1324 new SynchronousErrorStreamSocket(real_transport.Pass())); |
1327 int rv = callback.GetResult(transport->Connect(callback.callback())); | 1325 int rv = callback.GetResult(transport->Connect(callback.callback())); |
1328 EXPECT_EQ(OK, rv); | 1326 EXPECT_EQ(OK, rv); |
1329 | 1327 |
1330 // Disable TLS False Start to avoid handshake non-determinism. | 1328 // Disable TLS False Start to avoid handshake non-determinism. |
1331 SSLConfig ssl_config; | 1329 SSLConfig ssl_config; |
1332 ssl_config.false_start_enabled = false; | 1330 ssl_config.false_start_enabled = false; |
1333 | 1331 |
1334 SynchronousErrorStreamSocket* raw_transport = transport.get(); | 1332 SynchronousErrorStreamSocket* raw_transport = transport.get(); |
1335 scoped_ptr<SSLClientSocket> sock( | 1333 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
1336 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 1334 transport.Pass(), test_server.host_port_pair(), ssl_config)); |
1337 test_server.host_port_pair(), | |
1338 ssl_config)); | |
1339 | 1335 |
1340 raw_transport->SetNextWriteError(ERR_CONNECTION_RESET); | 1336 raw_transport->SetNextWriteError(ERR_CONNECTION_RESET); |
1341 | 1337 |
1342 rv = callback.GetResult(sock->Connect(callback.callback())); | 1338 rv = callback.GetResult(sock->Connect(callback.callback())); |
1343 EXPECT_EQ(ERR_CONNECTION_RESET, rv); | 1339 EXPECT_EQ(ERR_CONNECTION_RESET, rv); |
1344 EXPECT_FALSE(sock->IsConnected()); | 1340 EXPECT_FALSE(sock->IsConnected()); |
1345 } | 1341 } |
1346 | 1342 |
1347 // Tests that the SSLClientSocket properly handles when the underlying transport | 1343 // Tests that the SSLClientSocket properly handles when the underlying transport |
1348 // synchronously returns an error code - such as if an intermediary terminates | 1344 // synchronously returns an error code - such as if an intermediary terminates |
(...skipping 14 matching lines...) Expand all Loading... |
1363 scoped_ptr<SynchronousErrorStreamSocket> transport( | 1359 scoped_ptr<SynchronousErrorStreamSocket> transport( |
1364 new SynchronousErrorStreamSocket(real_transport.Pass())); | 1360 new SynchronousErrorStreamSocket(real_transport.Pass())); |
1365 int rv = callback.GetResult(transport->Connect(callback.callback())); | 1361 int rv = callback.GetResult(transport->Connect(callback.callback())); |
1366 EXPECT_EQ(OK, rv); | 1362 EXPECT_EQ(OK, rv); |
1367 | 1363 |
1368 // Disable TLS False Start to avoid handshake non-determinism. | 1364 // Disable TLS False Start to avoid handshake non-determinism. |
1369 SSLConfig ssl_config; | 1365 SSLConfig ssl_config; |
1370 ssl_config.false_start_enabled = false; | 1366 ssl_config.false_start_enabled = false; |
1371 | 1367 |
1372 SynchronousErrorStreamSocket* raw_transport = transport.get(); | 1368 SynchronousErrorStreamSocket* raw_transport = transport.get(); |
1373 scoped_ptr<SSLClientSocket> sock( | 1369 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
1374 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 1370 transport.Pass(), test_server.host_port_pair(), ssl_config)); |
1375 test_server.host_port_pair(), | |
1376 ssl_config)); | |
1377 | 1371 |
1378 rv = callback.GetResult(sock->Connect(callback.callback())); | 1372 rv = callback.GetResult(sock->Connect(callback.callback())); |
1379 EXPECT_EQ(OK, rv); | 1373 EXPECT_EQ(OK, rv); |
1380 EXPECT_TRUE(sock->IsConnected()); | 1374 EXPECT_TRUE(sock->IsConnected()); |
1381 | 1375 |
1382 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; | 1376 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; |
1383 static const int kRequestTextSize = | 1377 static const int kRequestTextSize = |
1384 static_cast<int>(arraysize(request_text) - 1); | 1378 static_cast<int>(arraysize(request_text) - 1); |
1385 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); | 1379 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); |
1386 memcpy(request_buffer->data(), request_text, kRequestTextSize); | 1380 memcpy(request_buffer->data(), request_text, kRequestTextSize); |
(...skipping 29 matching lines...) Expand all Loading... |
1416 | 1410 |
1417 TestCompletionCallback callback; | 1411 TestCompletionCallback callback; |
1418 scoped_ptr<StreamSocket> real_transport( | 1412 scoped_ptr<StreamSocket> real_transport( |
1419 new TCPClientSocket(addr, NULL, NetLog::Source())); | 1413 new TCPClientSocket(addr, NULL, NetLog::Source())); |
1420 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer | 1414 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer |
1421 // is retained in order to configure additional errors. | 1415 // is retained in order to configure additional errors. |
1422 scoped_ptr<SynchronousErrorStreamSocket> error_socket( | 1416 scoped_ptr<SynchronousErrorStreamSocket> error_socket( |
1423 new SynchronousErrorStreamSocket(real_transport.Pass())); | 1417 new SynchronousErrorStreamSocket(real_transport.Pass())); |
1424 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); | 1418 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); |
1425 scoped_ptr<FakeBlockingStreamSocket> transport( | 1419 scoped_ptr<FakeBlockingStreamSocket> transport( |
1426 new FakeBlockingStreamSocket(error_socket.PassAs<StreamSocket>())); | 1420 new FakeBlockingStreamSocket(error_socket.Pass())); |
1427 FakeBlockingStreamSocket* raw_transport = transport.get(); | 1421 FakeBlockingStreamSocket* raw_transport = transport.get(); |
1428 int rv = callback.GetResult(transport->Connect(callback.callback())); | 1422 int rv = callback.GetResult(transport->Connect(callback.callback())); |
1429 EXPECT_EQ(OK, rv); | 1423 EXPECT_EQ(OK, rv); |
1430 | 1424 |
1431 // Disable TLS False Start to avoid handshake non-determinism. | 1425 // Disable TLS False Start to avoid handshake non-determinism. |
1432 SSLConfig ssl_config; | 1426 SSLConfig ssl_config; |
1433 ssl_config.false_start_enabled = false; | 1427 ssl_config.false_start_enabled = false; |
1434 | 1428 |
1435 scoped_ptr<SSLClientSocket> sock( | 1429 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
1436 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 1430 transport.Pass(), test_server.host_port_pair(), ssl_config)); |
1437 test_server.host_port_pair(), | |
1438 ssl_config)); | |
1439 | 1431 |
1440 rv = callback.GetResult(sock->Connect(callback.callback())); | 1432 rv = callback.GetResult(sock->Connect(callback.callback())); |
1441 EXPECT_EQ(OK, rv); | 1433 EXPECT_EQ(OK, rv); |
1442 EXPECT_TRUE(sock->IsConnected()); | 1434 EXPECT_TRUE(sock->IsConnected()); |
1443 | 1435 |
1444 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; | 1436 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; |
1445 static const int kRequestTextSize = | 1437 static const int kRequestTextSize = |
1446 static_cast<int>(arraysize(request_text) - 1); | 1438 static_cast<int>(arraysize(request_text) - 1); |
1447 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); | 1439 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); |
1448 memcpy(request_buffer->data(), request_text, kRequestTextSize); | 1440 memcpy(request_buffer->data(), request_text, kRequestTextSize); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1490 | 1482 |
1491 TestCompletionCallback callback; | 1483 TestCompletionCallback callback; |
1492 scoped_ptr<StreamSocket> real_transport( | 1484 scoped_ptr<StreamSocket> real_transport( |
1493 new TCPClientSocket(addr, NULL, NetLog::Source())); | 1485 new TCPClientSocket(addr, NULL, NetLog::Source())); |
1494 // Note: intermediate sockets' ownership are handed to |sock|, but a pointer | 1486 // Note: intermediate sockets' ownership are handed to |sock|, but a pointer |
1495 // is retained in order to query them. | 1487 // is retained in order to query them. |
1496 scoped_ptr<SynchronousErrorStreamSocket> error_socket( | 1488 scoped_ptr<SynchronousErrorStreamSocket> error_socket( |
1497 new SynchronousErrorStreamSocket(real_transport.Pass())); | 1489 new SynchronousErrorStreamSocket(real_transport.Pass())); |
1498 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); | 1490 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); |
1499 scoped_ptr<CountingStreamSocket> counting_socket( | 1491 scoped_ptr<CountingStreamSocket> counting_socket( |
1500 new CountingStreamSocket(error_socket.PassAs<StreamSocket>())); | 1492 new CountingStreamSocket(error_socket.Pass())); |
1501 CountingStreamSocket* raw_counting_socket = counting_socket.get(); | 1493 CountingStreamSocket* raw_counting_socket = counting_socket.get(); |
1502 int rv = callback.GetResult(counting_socket->Connect(callback.callback())); | 1494 int rv = callback.GetResult(counting_socket->Connect(callback.callback())); |
1503 ASSERT_EQ(OK, rv); | 1495 ASSERT_EQ(OK, rv); |
1504 | 1496 |
1505 // Disable TLS False Start to avoid handshake non-determinism. | 1497 // Disable TLS False Start to avoid handshake non-determinism. |
1506 SSLConfig ssl_config; | 1498 SSLConfig ssl_config; |
1507 ssl_config.false_start_enabled = false; | 1499 ssl_config.false_start_enabled = false; |
1508 | 1500 |
1509 scoped_ptr<SSLClientSocket> sock( | 1501 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
1510 CreateSSLClientSocket(counting_socket.PassAs<StreamSocket>(), | 1502 counting_socket.Pass(), test_server.host_port_pair(), ssl_config)); |
1511 test_server.host_port_pair(), | |
1512 ssl_config)); | |
1513 | 1503 |
1514 rv = callback.GetResult(sock->Connect(callback.callback())); | 1504 rv = callback.GetResult(sock->Connect(callback.callback())); |
1515 ASSERT_EQ(OK, rv); | 1505 ASSERT_EQ(OK, rv); |
1516 ASSERT_TRUE(sock->IsConnected()); | 1506 ASSERT_TRUE(sock->IsConnected()); |
1517 | 1507 |
1518 // Simulate an unclean/forcible shutdown on the underlying socket. | 1508 // Simulate an unclean/forcible shutdown on the underlying socket. |
1519 raw_error_socket->SetNextWriteError(ERR_CONNECTION_RESET); | 1509 raw_error_socket->SetNextWriteError(ERR_CONNECTION_RESET); |
1520 | 1510 |
1521 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; | 1511 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; |
1522 static const int kRequestTextSize = | 1512 static const int kRequestTextSize = |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1620 | 1610 |
1621 TestCompletionCallback callback; | 1611 TestCompletionCallback callback; |
1622 scoped_ptr<StreamSocket> real_transport( | 1612 scoped_ptr<StreamSocket> real_transport( |
1623 new TCPClientSocket(addr, NULL, NetLog::Source())); | 1613 new TCPClientSocket(addr, NULL, NetLog::Source())); |
1624 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer | 1614 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer |
1625 // is retained in order to configure additional errors. | 1615 // is retained in order to configure additional errors. |
1626 scoped_ptr<SynchronousErrorStreamSocket> error_socket( | 1616 scoped_ptr<SynchronousErrorStreamSocket> error_socket( |
1627 new SynchronousErrorStreamSocket(real_transport.Pass())); | 1617 new SynchronousErrorStreamSocket(real_transport.Pass())); |
1628 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); | 1618 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); |
1629 scoped_ptr<FakeBlockingStreamSocket> transport( | 1619 scoped_ptr<FakeBlockingStreamSocket> transport( |
1630 new FakeBlockingStreamSocket(error_socket.PassAs<StreamSocket>())); | 1620 new FakeBlockingStreamSocket(error_socket.Pass())); |
1631 FakeBlockingStreamSocket* raw_transport = transport.get(); | 1621 FakeBlockingStreamSocket* raw_transport = transport.get(); |
1632 | 1622 |
1633 int rv = callback.GetResult(transport->Connect(callback.callback())); | 1623 int rv = callback.GetResult(transport->Connect(callback.callback())); |
1634 EXPECT_EQ(OK, rv); | 1624 EXPECT_EQ(OK, rv); |
1635 | 1625 |
1636 // Disable TLS False Start to avoid handshake non-determinism. | 1626 // Disable TLS False Start to avoid handshake non-determinism. |
1637 SSLConfig ssl_config; | 1627 SSLConfig ssl_config; |
1638 ssl_config.false_start_enabled = false; | 1628 ssl_config.false_start_enabled = false; |
1639 | 1629 |
1640 scoped_ptr<SSLClientSocket> sock = | 1630 scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket( |
1641 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 1631 transport.Pass(), test_server.host_port_pair(), ssl_config); |
1642 test_server.host_port_pair(), | |
1643 ssl_config); | |
1644 | 1632 |
1645 rv = callback.GetResult(sock->Connect(callback.callback())); | 1633 rv = callback.GetResult(sock->Connect(callback.callback())); |
1646 EXPECT_EQ(OK, rv); | 1634 EXPECT_EQ(OK, rv); |
1647 EXPECT_TRUE(sock->IsConnected()); | 1635 EXPECT_TRUE(sock->IsConnected()); |
1648 | 1636 |
1649 std::string request_text = "GET / HTTP/1.1\r\nUser-Agent: long browser name "; | 1637 std::string request_text = "GET / HTTP/1.1\r\nUser-Agent: long browser name "; |
1650 request_text.append(20 * 1024, '*'); | 1638 request_text.append(20 * 1024, '*'); |
1651 request_text.append("\r\n\r\n"); | 1639 request_text.append("\r\n\r\n"); |
1652 scoped_refptr<DrainableIOBuffer> request_buffer(new DrainableIOBuffer( | 1640 scoped_refptr<DrainableIOBuffer> request_buffer(new DrainableIOBuffer( |
1653 new StringIOBuffer(request_text), request_text.size())); | 1641 new StringIOBuffer(request_text), request_text.size())); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1736 | 1724 |
1737 TestCompletionCallback callback; | 1725 TestCompletionCallback callback; |
1738 scoped_ptr<StreamSocket> real_transport( | 1726 scoped_ptr<StreamSocket> real_transport( |
1739 new TCPClientSocket(addr, NULL, NetLog::Source())); | 1727 new TCPClientSocket(addr, NULL, NetLog::Source())); |
1740 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer | 1728 // Note: |error_socket|'s ownership is handed to |transport|, but a pointer |
1741 // is retained in order to configure additional errors. | 1729 // is retained in order to configure additional errors. |
1742 scoped_ptr<SynchronousErrorStreamSocket> error_socket( | 1730 scoped_ptr<SynchronousErrorStreamSocket> error_socket( |
1743 new SynchronousErrorStreamSocket(real_transport.Pass())); | 1731 new SynchronousErrorStreamSocket(real_transport.Pass())); |
1744 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); | 1732 SynchronousErrorStreamSocket* raw_error_socket = error_socket.get(); |
1745 scoped_ptr<FakeBlockingStreamSocket> transport( | 1733 scoped_ptr<FakeBlockingStreamSocket> transport( |
1746 new FakeBlockingStreamSocket(error_socket.PassAs<StreamSocket>())); | 1734 new FakeBlockingStreamSocket(error_socket.Pass())); |
1747 FakeBlockingStreamSocket* raw_transport = transport.get(); | 1735 FakeBlockingStreamSocket* raw_transport = transport.get(); |
1748 | 1736 |
1749 int rv = callback.GetResult(transport->Connect(callback.callback())); | 1737 int rv = callback.GetResult(transport->Connect(callback.callback())); |
1750 EXPECT_EQ(OK, rv); | 1738 EXPECT_EQ(OK, rv); |
1751 | 1739 |
1752 // Disable TLS False Start to avoid handshake non-determinism. | 1740 // Disable TLS False Start to avoid handshake non-determinism. |
1753 SSLConfig ssl_config; | 1741 SSLConfig ssl_config; |
1754 ssl_config.false_start_enabled = false; | 1742 ssl_config.false_start_enabled = false; |
1755 | 1743 |
1756 scoped_ptr<SSLClientSocket> sock( | 1744 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
1757 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 1745 transport.Pass(), test_server.host_port_pair(), ssl_config)); |
1758 test_server.host_port_pair(), | |
1759 ssl_config)); | |
1760 | 1746 |
1761 rv = callback.GetResult(sock->Connect(callback.callback())); | 1747 rv = callback.GetResult(sock->Connect(callback.callback())); |
1762 EXPECT_EQ(OK, rv); | 1748 EXPECT_EQ(OK, rv); |
1763 EXPECT_TRUE(sock->IsConnected()); | 1749 EXPECT_TRUE(sock->IsConnected()); |
1764 | 1750 |
1765 // Send a request so there is something to read from the socket. | 1751 // Send a request so there is something to read from the socket. |
1766 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; | 1752 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; |
1767 static const int kRequestTextSize = | 1753 static const int kRequestTextSize = |
1768 static_cast<int>(arraysize(request_text) - 1); | 1754 static_cast<int>(arraysize(request_text) - 1); |
1769 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); | 1755 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kRequestTextSize)); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1891 TestCompletionCallback callback; | 1877 TestCompletionCallback callback; |
1892 | 1878 |
1893 scoped_ptr<StreamSocket> real_transport( | 1879 scoped_ptr<StreamSocket> real_transport( |
1894 new TCPClientSocket(addr, NULL, NetLog::Source())); | 1880 new TCPClientSocket(addr, NULL, NetLog::Source())); |
1895 scoped_ptr<ReadBufferingStreamSocket> transport( | 1881 scoped_ptr<ReadBufferingStreamSocket> transport( |
1896 new ReadBufferingStreamSocket(real_transport.Pass())); | 1882 new ReadBufferingStreamSocket(real_transport.Pass())); |
1897 ReadBufferingStreamSocket* raw_transport = transport.get(); | 1883 ReadBufferingStreamSocket* raw_transport = transport.get(); |
1898 int rv = callback.GetResult(transport->Connect(callback.callback())); | 1884 int rv = callback.GetResult(transport->Connect(callback.callback())); |
1899 ASSERT_EQ(OK, rv); | 1885 ASSERT_EQ(OK, rv); |
1900 | 1886 |
1901 scoped_ptr<SSLClientSocket> sock( | 1887 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
1902 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 1888 transport.Pass(), test_server.host_port_pair(), kDefaultSSLConfig)); |
1903 test_server.host_port_pair(), | |
1904 kDefaultSSLConfig)); | |
1905 | 1889 |
1906 rv = callback.GetResult(sock->Connect(callback.callback())); | 1890 rv = callback.GetResult(sock->Connect(callback.callback())); |
1907 ASSERT_EQ(OK, rv); | 1891 ASSERT_EQ(OK, rv); |
1908 ASSERT_TRUE(sock->IsConnected()); | 1892 ASSERT_TRUE(sock->IsConnected()); |
1909 | 1893 |
1910 const char request_text[] = "GET /ssl-many-small-records HTTP/1.0\r\n\r\n"; | 1894 const char request_text[] = "GET /ssl-many-small-records HTTP/1.0\r\n\r\n"; |
1911 scoped_refptr<IOBuffer> request_buffer( | 1895 scoped_refptr<IOBuffer> request_buffer( |
1912 new IOBuffer(arraysize(request_text) - 1)); | 1896 new IOBuffer(arraysize(request_text) - 1)); |
1913 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); | 1897 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); |
1914 | 1898 |
(...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2694 scoped_ptr<SynchronousErrorStreamSocket> transport( | 2678 scoped_ptr<SynchronousErrorStreamSocket> transport( |
2695 new SynchronousErrorStreamSocket(real_transport.Pass())); | 2679 new SynchronousErrorStreamSocket(real_transport.Pass())); |
2696 int rv = callback.GetResult(transport->Connect(callback.callback())); | 2680 int rv = callback.GetResult(transport->Connect(callback.callback())); |
2697 EXPECT_EQ(OK, rv); | 2681 EXPECT_EQ(OK, rv); |
2698 | 2682 |
2699 // Disable TLS False Start to avoid handshake non-determinism. | 2683 // Disable TLS False Start to avoid handshake non-determinism. |
2700 SSLConfig ssl_config; | 2684 SSLConfig ssl_config; |
2701 ssl_config.false_start_enabled = false; | 2685 ssl_config.false_start_enabled = false; |
2702 | 2686 |
2703 SynchronousErrorStreamSocket* raw_transport = transport.get(); | 2687 SynchronousErrorStreamSocket* raw_transport = transport.get(); |
2704 scoped_ptr<SSLClientSocket> sock( | 2688 scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
2705 CreateSSLClientSocket(transport.PassAs<StreamSocket>(), | 2689 transport.Pass(), test_server.host_port_pair(), ssl_config)); |
2706 test_server.host_port_pair(), | |
2707 ssl_config)); | |
2708 | 2690 |
2709 sock->SetHandshakeCompletionCallback(base::Bind( | 2691 sock->SetHandshakeCompletionCallback(base::Bind( |
2710 &SSLClientSocketTest::RecordCompletedHandshake, base::Unretained(this))); | 2692 &SSLClientSocketTest::RecordCompletedHandshake, base::Unretained(this))); |
2711 | 2693 |
2712 raw_transport->SetNextWriteError(ERR_CONNECTION_RESET); | 2694 raw_transport->SetNextWriteError(ERR_CONNECTION_RESET); |
2713 | 2695 |
2714 rv = callback.GetResult(sock->Connect(callback.callback())); | 2696 rv = callback.GetResult(sock->Connect(callback.callback())); |
2715 EXPECT_EQ(ERR_CONNECTION_RESET, rv); | 2697 EXPECT_EQ(ERR_CONNECTION_RESET, rv); |
2716 EXPECT_FALSE(sock->IsConnected()); | 2698 EXPECT_FALSE(sock->IsConnected()); |
2717 | 2699 |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2983 ssl_config.channel_id_enabled = true; | 2965 ssl_config.channel_id_enabled = true; |
2984 | 2966 |
2985 int rv; | 2967 int rv; |
2986 ASSERT_TRUE(CreateAndConnectSSLClientSocket(ssl_config, &rv)); | 2968 ASSERT_TRUE(CreateAndConnectSSLClientSocket(ssl_config, &rv)); |
2987 | 2969 |
2988 EXPECT_EQ(ERR_UNEXPECTED, rv); | 2970 EXPECT_EQ(ERR_UNEXPECTED, rv); |
2989 EXPECT_FALSE(sock_->IsConnected()); | 2971 EXPECT_FALSE(sock_->IsConnected()); |
2990 } | 2972 } |
2991 | 2973 |
2992 } // namespace net | 2974 } // namespace net |
OLD | NEW |