diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-07 20:04:18 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-07 20:04:18 +0000 |
commit | 0f7804ec8e1e2d5c7f8498dfee2ab851347b2935 (patch) | |
tree | 64569b624e1ca55a4c6721528fb9eaa0a216a927 /net/socket | |
parent | b45937e4e0afacf8c76661fc4bee799d28aae2ce (diff) | |
download | chromium_src-0f7804ec8e1e2d5c7f8498dfee2ab851347b2935.zip chromium_src-0f7804ec8e1e2d5c7f8498dfee2ab851347b2935.tar.gz chromium_src-0f7804ec8e1e2d5c7f8498dfee2ab851347b2935.tar.bz2 |
Convert the easy ones in net/base/ to using CompletionCallback.
BUG=98719
TEST=none
Review URL: http://codereview.chromium.org/8139007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104547 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket')
-rw-r--r-- | net/socket/ssl_client_socket_mac.cc | 12 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_mac.h | 1 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_nss.cc | 12 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_openssl.cc | 14 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_openssl.h | 1 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_win.cc | 9 | ||||
-rw-r--r-- | net/socket/ssl_host_info.cc | 10 | ||||
-rw-r--r-- | net/socket/ssl_host_info.h | 3 |
8 files changed, 35 insertions, 27 deletions
diff --git a/net/socket/ssl_client_socket_mac.cc b/net/socket/ssl_client_socket_mac.cc index 97527b8..a3c7854 100644 --- a/net/socket/ssl_client_socket_mac.cc +++ b/net/socket/ssl_client_socket_mac.cc @@ -11,6 +11,7 @@ #include <algorithm> +#include "base/bind.h" #include "base/lazy_instance.h" #include "base/mac/scoped_cftyperef.h" #include "base/string_util.h" @@ -522,8 +523,7 @@ SSLClientSocketMac::SSLClientSocketMac(ClientSocketHandle* transport_socket, const HostPortPair& host_and_port, const SSLConfig& ssl_config, const SSLClientSocketContext& context) - : handshake_io_callback_(this, &SSLClientSocketMac::OnHandshakeIOComplete), - transport_read_callback_(this, + : transport_read_callback_(this, &SSLClientSocketMac::OnTransportReadComplete), transport_write_callback_(this, &SSLClientSocketMac::OnTransportWriteComplete), @@ -1156,9 +1156,11 @@ int SSLClientSocketMac::DoVerifyCert() { if (ssl_config_.verify_ev_cert) flags |= X509Certificate::VERIFY_EV_CERT; verifier_.reset(new SingleRequestCertVerifier(cert_verifier_)); - return verifier_->Verify(server_cert_, host_and_port_.host(), flags, - &server_cert_verify_result_, - &handshake_io_callback_); + return verifier_->Verify( + server_cert_, host_and_port_.host(), flags, + &server_cert_verify_result_, + base::Bind(&SSLClientSocketMac::OnHandshakeIOComplete, + base::Unretained(this))); } int SSLClientSocketMac::DoVerifyCertComplete(int result) { diff --git a/net/socket/ssl_client_socket_mac.h b/net/socket/ssl_client_socket_mac.h index 2f3b1e3..5370b2d 100644 --- a/net/socket/ssl_client_socket_mac.h +++ b/net/socket/ssl_client_socket_mac.h @@ -105,7 +105,6 @@ class SSLClientSocketMac : public SSLClientSocket { const void* data, size_t* data_length); - OldCompletionCallbackImpl<SSLClientSocketMac> handshake_io_callback_; OldCompletionCallbackImpl<SSLClientSocketMac> transport_read_callback_; OldCompletionCallbackImpl<SSLClientSocketMac> transport_write_callback_; diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc index 79fd69a..0616578 100644 --- a/net/socket/ssl_client_socket_nss.cc +++ b/net/socket/ssl_client_socket_nss.cc @@ -64,6 +64,7 @@ #include <limits> #include <map> +#include "base/bind.h" #include "base/compiler_specific.h" #include "base/logging.h" #include "base/memory/singleton.h" @@ -1686,9 +1687,11 @@ int SSLClientSocketNSS::DoVerifyCert(int result) { flags |= X509Certificate::VERIFY_EV_CERT; verifier_.reset(new SingleRequestCertVerifier(cert_verifier_)); server_cert_verify_result_ = &local_server_cert_verify_result_; - return verifier_->Verify(server_cert_, host_and_port_.host(), flags, - &local_server_cert_verify_result_, - &handshake_io_callback_); + return verifier_->Verify( + server_cert_, host_and_port_.host(), flags, + &local_server_cert_verify_result_, + base::Bind(&SSLClientSocketNSS::OnHandshakeIOComplete, + base::Unretained(this))); } // Derived from AuthCertificateCallback() in @@ -2126,7 +2129,8 @@ SECStatus SSLClientSocketNSS::OriginBoundClientAuthHandler( origin, &ob_private_key_, &ob_cert_, - &handshake_io_callback_, + base::Bind(&SSLClientSocketNSS::OnHandshakeIOComplete, + base::Unretained(this)), &ob_cert_request_handle_); if (error == OK) { diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc index db9dc78..d76b377 100644 --- a/net/socket/ssl_client_socket_openssl.cc +++ b/net/socket/ssl_client_socket_openssl.cc @@ -10,6 +10,7 @@ #include <openssl/ssl.h> #include <openssl/err.h> +#include "base/bind.h" #include "base/memory/singleton.h" #include "base/metrics/histogram.h" #include "base/synchronization/lock.h" @@ -394,8 +395,6 @@ SSLClientSocketOpenSSL::SSLClientSocketOpenSSL( completed_handshake_(false), client_auth_cert_needed_(false), cert_verifier_(context.cert_verifier), - ALLOW_THIS_IN_INITIALIZER_LIST(handshake_io_callback_( - this, &SSLClientSocketOpenSSL::OnHandshakeIOComplete)), ssl_(NULL), transport_bio_(NULL), transport_(transport_socket), @@ -664,8 +663,7 @@ void SSLClientSocketOpenSSL::Disconnect() { transport_bio_ = NULL; } - // Shut down anything that may call us back (through buffer_send_callback_, - // buffer_recv_callback, or handshake_io_callback_). + // Shut down anything that may call us back. verifier_.reset(); transport_->socket()->Disconnect(); @@ -836,9 +834,11 @@ int SSLClientSocketOpenSSL::DoVerifyCert(int result) { if (ssl_config_.verify_ev_cert) flags |= X509Certificate::VERIFY_EV_CERT; verifier_.reset(new SingleRequestCertVerifier(cert_verifier_)); - return verifier_->Verify(server_cert_, host_and_port_.host(), flags, - &server_cert_verify_result_, - &handshake_io_callback_); + return verifier_->Verify( + server_cert_, host_and_port_.host(), flags, + &server_cert_verify_result_, + base::Bind(&SSLClientSocketOpenSSL::OnHandshakeIOComplete, + base::Unretained(this))); } int SSLClientSocketOpenSSL::DoVerifyCertComplete(int result) { diff --git a/net/socket/ssl_client_socket_openssl.h b/net/socket/ssl_client_socket_openssl.h index 81ece4c..a09fff4 100644 --- a/net/socket/ssl_client_socket_openssl.h +++ b/net/socket/ssl_client_socket_openssl.h @@ -142,7 +142,6 @@ class SSLClientSocketOpenSSL : public SSLClientSocket { CertVerifier* const cert_verifier_; scoped_ptr<SingleRequestCertVerifier> verifier_; - OldCompletionCallbackImpl<SSLClientSocketOpenSSL> handshake_io_callback_; // OpenSSL stuff SSL* ssl_; diff --git a/net/socket/ssl_client_socket_win.cc b/net/socket/ssl_client_socket_win.cc index 50b24db..10ba66a 100644 --- a/net/socket/ssl_client_socket_win.cc +++ b/net/socket/ssl_client_socket_win.cc @@ -7,6 +7,7 @@ #include <schnlsp.h> #include <map> +#include "base/bind.h" #include "base/compiler_specific.h" #include "base/lazy_instance.h" #include "base/stl_util.h" @@ -1172,9 +1173,11 @@ int SSLClientSocketWin::DoVerifyCert() { if (ssl_config_.verify_ev_cert) flags |= X509Certificate::VERIFY_EV_CERT; verifier_.reset(new SingleRequestCertVerifier(cert_verifier_)); - return verifier_->Verify(server_cert_, host_and_port_.host(), flags, - &server_cert_verify_result_, - &handshake_io_callback_); + return verifier_->Verify( + server_cert_, host_and_port_.host(), flags, + &server_cert_verify_result_, + base::Bind(&SSLClientSocketWin::OnHandshakeIOComplete, + base::Unretained(this))); } int SSLClientSocketWin::DoVerifyCertComplete(int result) { diff --git a/net/socket/ssl_host_info.cc b/net/socket/ssl_host_info.cc index 2f03a1a..ae897b0 100644 --- a/net/socket/ssl_host_info.cc +++ b/net/socket/ssl_host_info.cc @@ -4,6 +4,7 @@ #include "net/socket/ssl_host_info.h" +#include "base/bind.h" #include "base/metrics/histogram.h" #include "base/pickle.h" #include "base/string_piece.h" @@ -35,9 +36,7 @@ SSLHostInfo::SSLHostInfo( rev_checking_enabled_(ssl_config.rev_checking_enabled), verify_ev_cert_(ssl_config.verify_ev_cert), verifier_(cert_verifier), - callback_(new CancelableOldCompletionCallback<SSLHostInfo>( - ALLOW_THIS_IN_INITIALIZER_LIST(this), - &SSLHostInfo::VerifyCallback)), + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), dnsrr_resolver_(NULL), dns_callback_(NULL), dns_handle_(DnsRRResolver::kInvalidHandle) { @@ -128,8 +127,9 @@ bool SSLHostInfo::ParseInner(const std::string& data) { VLOG(1) << "Kicking off verification for " << hostname_; verification_start_time_ = base::TimeTicks::Now(); verification_end_time_ = base::TimeTicks(); - int rv = verifier_.Verify(cert_.get(), hostname_, flags, - &cert_verify_result_, callback_); + int rv = verifier_.Verify( + cert_.get(), hostname_, flags, &cert_verify_result_, + base::Bind(&SSLHostInfo::VerifyCallback, weak_factory_.GetWeakPtr())); if (rv != ERR_IO_PENDING) VerifyCallback(rv); } else { diff --git a/net/socket/ssl_host_info.h b/net/socket/ssl_host_info.h index b4884a7..c8028d3 100644 --- a/net/socket/ssl_host_info.h +++ b/net/socket/ssl_host_info.h @@ -10,6 +10,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" +#include "base/memory/weak_ptr.h" #include "base/time.h" #include "net/base/cert_verifier.h" #include "net/base/cert_verify_result.h" @@ -128,7 +129,7 @@ class NET_EXPORT_PRIVATE SSLHostInfo { CertVerifyResult cert_verify_result_; SingleRequestCertVerifier verifier_; scoped_refptr<X509Certificate> cert_; - scoped_refptr<CancelableOldCompletionCallback<SSLHostInfo> > callback_; + base::WeakPtrFactory<SSLHostInfo> weak_factory_; DnsRRResolver* dnsrr_resolver_; OldCompletionCallback* dns_callback_; |