Chromium Code Reviews| Index: net/base/cert_verifier.cc |
| diff --git a/net/base/cert_verifier.cc b/net/base/cert_verifier.cc |
| index efdee5274dd69642003fcc42b7c54256154b8aa0..18b000fb3e64fec8144f145642e086dec94ff7e5 100644 |
| --- a/net/base/cert_verifier.cc |
| +++ b/net/base/cert_verifier.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/synchronization/lock.h" |
| #include "base/time.h" |
| #include "base/threading/worker_pool.h" |
| +#include "net/base/crl_set.h" |
| #include "net/base/net_errors.h" |
| #include "net/base/net_log.h" |
| #include "net/base/x509_certificate.h" |
| @@ -141,10 +142,12 @@ class CertVerifierWorker { |
| CertVerifierWorker(X509Certificate* cert, |
| const std::string& hostname, |
| int flags, |
| + CRLSet* crl_set, |
| CertVerifier* cert_verifier) |
| : cert_(cert), |
| hostname_(hostname), |
| flags_(flags), |
| + crl_set_(crl_set), |
| origin_loop_(MessageLoop::current()), |
| cert_verifier_(cert_verifier), |
| canceled_(false), |
| @@ -170,7 +173,8 @@ class CertVerifierWorker { |
| private: |
| void Run() { |
| // Runs on a worker thread. |
| - error_ = cert_->Verify(hostname_, flags_, &verify_result_); |
| + error_ = cert_->Verify(hostname_, flags_, &verify_result_, |
| + crl_set_.get()); |
|
wtc
2011/10/21 23:17:31
Nit: omit .get().
agl
2011/10/24 20:44:27
Done.
|
| #if defined(USE_NSS) |
| // Detach the thread from NSPR. |
| // Calling NSS functions attaches the thread to NSPR, which stores |
| @@ -229,6 +233,7 @@ class CertVerifierWorker { |
| scoped_refptr<X509Certificate> cert_; |
| const std::string hostname_; |
| const int flags_; |
| + scoped_refptr<CRLSet> crl_set_; |
| MessageLoop* const origin_loop_; |
| CertVerifier* const cert_verifier_; |
| @@ -344,6 +349,7 @@ CertVerifier::~CertVerifier() { |
| int CertVerifier::Verify(X509Certificate* cert, |
| const std::string& hostname, |
| int flags, |
| + CRLSet* crl_set, |
| CertVerifyResult* verify_result, |
| const CompletionCallback& callback, |
| RequestHandle* out_req, |
| @@ -384,7 +390,7 @@ int CertVerifier::Verify(X509Certificate* cert, |
| } else { |
| // Need to make a new request. |
| CertVerifierWorker* worker = new CertVerifierWorker(cert, hostname, flags, |
| - this); |
| + crl_set, this); |
| job = new CertVerifierJob( |
| worker, |
| BoundNetLog::Make(net_log.net_log(), NetLog::SOURCE_CERT_VERIFIER_JOB)); |
| @@ -501,6 +507,7 @@ SingleRequestCertVerifier::~SingleRequestCertVerifier() { |
| int SingleRequestCertVerifier::Verify(X509Certificate* cert, |
| const std::string& hostname, |
| int flags, |
| + CRLSet* crl_set, |
| CertVerifyResult* verify_result, |
| const CompletionCallback& callback, |
| const BoundNetLog& net_log) { |
| @@ -509,14 +516,14 @@ int SingleRequestCertVerifier::Verify(X509Certificate* cert, |
| // Do a synchronous verification. |
| if (callback.is_null()) |
| - return cert->Verify(hostname, flags, verify_result); |
| + return cert->Verify(hostname, flags, verify_result, crl_set); |
| CertVerifier::RequestHandle request = NULL; |
| // We need to be notified of completion before |callback| is called, so that |
| // we can clear out |cur_request_*|. |
| int rv = cert_verifier_->Verify( |
| - cert, hostname, flags, verify_result, |
| + cert, hostname, flags, crl_set, verify_result, |
| base::Bind(&SingleRequestCertVerifier::OnVerifyCompletion, |
| base::Unretained(this)), |
| &request, net_log); |