| Index: net/base/cert_verifier.cc
|
| diff --git a/net/base/cert_verifier.cc b/net/base/cert_verifier.cc
|
| index 88d8c7ab8503af1787c2ebfbb34f2d56ee592136..90a728cb4e370d192d762cdf227e2112da1379c8 100644
|
| --- a/net/base/cert_verifier.cc
|
| +++ b/net/base/cert_verifier.cc
|
| @@ -13,6 +13,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"
|
| @@ -142,10 +143,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),
|
| @@ -171,7 +174,7 @@ class CertVerifierWorker {
|
| private:
|
| void Run() {
|
| // Runs on a worker thread.
|
| - error_ = cert_->Verify(hostname_, flags_, &verify_result_);
|
| + error_ = cert_->Verify(hostname_, flags_, crl_set_, &verify_result_);
|
| #if defined(USE_NSS)
|
| // Detach the thread from NSPR.
|
| // Calling NSS functions attaches the thread to NSPR, which stores
|
| @@ -231,6 +234,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_;
|
|
|
| @@ -346,6 +350,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,
|
| @@ -386,7 +391,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));
|
| @@ -503,6 +508,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) {
|
| @@ -511,14 +517,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, crl_set, verify_result);
|
|
|
| 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);
|
|
|