OLD | NEW |
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 #ifndef BLIMP_NET_SSL_CLIENT_TRANSPORT_H_ | 5 #ifndef BLIMP_NET_SSL_CLIENT_TRANSPORT_H_ |
6 #define BLIMP_NET_SSL_CLIENT_TRANSPORT_H_ | 6 #define BLIMP_NET_SSL_CLIENT_TRANSPORT_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 11 matching lines...) Expand all Loading... |
22 class ClientSocketFactory; | 22 class ClientSocketFactory; |
23 class NetLog; | 23 class NetLog; |
24 class StreamSocket; | 24 class StreamSocket; |
25 class TCPClientSocket; | 25 class TCPClientSocket; |
26 class TransportSecurityState; | 26 class TransportSecurityState; |
27 } // namespace net | 27 } // namespace net |
28 | 28 |
29 namespace blimp { | 29 namespace blimp { |
30 | 30 |
31 class BlimpConnection; | 31 class BlimpConnection; |
32 class BlimpConnectionStatistics; | |
33 | 32 |
34 // Creates and connects SSL socket connections to an Engine. | 33 // Creates and connects SSL socket connections to an Engine. |
35 class BLIMP_NET_EXPORT SSLClientTransport : public TCPClientTransport { | 34 class BLIMP_NET_EXPORT SSLClientTransport : public TCPClientTransport { |
36 public: | 35 public: |
37 // |ip_endpoint|: the address to connect to. | 36 // |ip_endpoint|: the address to connect to. |
38 // |cert|: the certificate required from the remote peer. | 37 // |cert|: the certificate required from the remote peer. |
39 // SSL connections that use different certificates are rejected. | 38 // SSL connections that use different certificates are rejected. |
40 // |net_log|: the socket event log (optional). | 39 // |net_log|: the socket event log (optional). |
41 SSLClientTransport(const net::IPEndPoint& ip_endpoint, | 40 SSLClientTransport(const net::IPEndPoint& ip_endpoint, |
42 scoped_refptr<net::X509Certificate> cert, | 41 scoped_refptr<net::X509Certificate> cert, |
43 BlimpConnectionStatistics* statistics, | |
44 net::NetLog* net_log); | 42 net::NetLog* net_log); |
45 | 43 |
46 ~SSLClientTransport() override; | 44 ~SSLClientTransport() override; |
47 | 45 |
48 // BlimpTransport implementation. | 46 // BlimpTransport implementation. |
49 const char* GetName() const override; | 47 const char* GetName() const override; |
50 | 48 |
51 private: | 49 private: |
52 // Method called after TCPClientSocket::Connect finishes. | 50 // Method called after TCPClientSocket::Connect finishes. |
53 void OnTCPConnectComplete(int result) override; | 51 void OnTCPConnectComplete(int result) override; |
54 | 52 |
55 // Method called after SSLClientSocket::Connect finishes. | 53 // Method called after SSLClientSocket::Connect finishes. |
56 void OnSSLConnectComplete(int result); | 54 void OnSSLConnectComplete(int result); |
57 | 55 |
58 net::IPEndPoint ip_endpoint_; | 56 net::IPEndPoint ip_endpoint_; |
59 std::unique_ptr<ExactMatchCertVerifier> cert_verifier_; | 57 std::unique_ptr<ExactMatchCertVerifier> cert_verifier_; |
60 net::TransportSecurityState transport_security_state_; | 58 net::TransportSecurityState transport_security_state_; |
61 | 59 |
62 DISALLOW_COPY_AND_ASSIGN(SSLClientTransport); | 60 DISALLOW_COPY_AND_ASSIGN(SSLClientTransport); |
63 }; | 61 }; |
64 | 62 |
65 } // namespace blimp | 63 } // namespace blimp |
66 | 64 |
67 #endif // BLIMP_NET_SSL_CLIENT_TRANSPORT_H_ | 65 #endif // BLIMP_NET_SSL_CLIENT_TRANSPORT_H_ |
OLD | NEW |