summaryrefslogtreecommitdiffstats
path: root/net/socket
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-07 20:04:18 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-07 20:04:18 +0000
commit0f7804ec8e1e2d5c7f8498dfee2ab851347b2935 (patch)
tree64569b624e1ca55a4c6721528fb9eaa0a216a927 /net/socket
parentb45937e4e0afacf8c76661fc4bee799d28aae2ce (diff)
downloadchromium_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.cc12
-rw-r--r--net/socket/ssl_client_socket_mac.h1
-rw-r--r--net/socket/ssl_client_socket_nss.cc12
-rw-r--r--net/socket/ssl_client_socket_openssl.cc14
-rw-r--r--net/socket/ssl_client_socket_openssl.h1
-rw-r--r--net/socket/ssl_client_socket_win.cc9
-rw-r--r--net/socket/ssl_host_info.cc10
-rw-r--r--net/socket/ssl_host_info.h3
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_;