| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "net/ocsp/nss_ocsp.h" | 5 #include "net/ocsp/nss_ocsp.h" |
| 6 | 6 |
| 7 #include <certt.h> | 7 #include <certt.h> |
| 8 #include <certdb.h> | 8 #include <certdb.h> |
| 9 #include <ocsp.h> | 9 #include <ocsp.h> |
| 10 #include <nspr.h> | 10 #include <nspr.h> |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 std::set<OCSPRequestSession*> requests_; // Protected by |lock_|. | 79 std::set<OCSPRequestSession*> requests_; // Protected by |lock_|. |
| 80 bool used_; // Protected by |lock_|. | 80 bool used_; // Protected by |lock_|. |
| 81 // This should not be modified after |used_|. | 81 // This should not be modified after |used_|. |
| 82 MessageLoopForIO* io_loop_; // Protected by |lock_|. | 82 MessageLoopForIO* io_loop_; // Protected by |lock_|. |
| 83 base::ThreadChecker thread_checker_; | 83 base::ThreadChecker thread_checker_; |
| 84 | 84 |
| 85 DISALLOW_COPY_AND_ASSIGN(OCSPIOLoop); | 85 DISALLOW_COPY_AND_ASSIGN(OCSPIOLoop); |
| 86 }; | 86 }; |
| 87 | 87 |
| 88 base::LazyInstance<OCSPIOLoop, base::LeakyLazyInstanceTraits<OCSPIOLoop> > | 88 base::LazyInstance<OCSPIOLoop, base::LeakyLazyInstanceTraits<OCSPIOLoop> > |
| 89 g_ocsp_io_loop(base::LINKER_INITIALIZED); | 89 g_ocsp_io_loop = LAZY_INSTANCE_INITIALIZER; |
| 90 | 90 |
| 91 const int kRecvBufferSize = 4096; | 91 const int kRecvBufferSize = 4096; |
| 92 | 92 |
| 93 // All OCSP handlers should be called in the context of | 93 // All OCSP handlers should be called in the context of |
| 94 // CertVerifier's thread (i.e. worker pool, not on the I/O thread). | 94 // CertVerifier's thread (i.e. worker pool, not on the I/O thread). |
| 95 // It supports blocking mode only. | 95 // It supports blocking mode only. |
| 96 | 96 |
| 97 SECStatus OCSPCreateSession(const char* host, PRUint16 portnum, | 97 SECStatus OCSPCreateSession(const char* host, PRUint16 portnum, |
| 98 SEC_HTTP_SERVER_SESSION* pSession); | 98 SEC_HTTP_SERVER_SESSION* pSession); |
| 99 SECStatus OCSPKeepAliveSession(SEC_HTTP_SERVER_SESSION session, | 99 SECStatus OCSPKeepAliveSession(SEC_HTTP_SERVER_SESSION session, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 129 friend struct base::DefaultLazyInstanceTraits<OCSPNSSInitialization>; | 129 friend struct base::DefaultLazyInstanceTraits<OCSPNSSInitialization>; |
| 130 | 130 |
| 131 OCSPNSSInitialization(); | 131 OCSPNSSInitialization(); |
| 132 ~OCSPNSSInitialization(); | 132 ~OCSPNSSInitialization(); |
| 133 | 133 |
| 134 SEC_HttpClientFcn client_fcn_; | 134 SEC_HttpClientFcn client_fcn_; |
| 135 | 135 |
| 136 DISALLOW_COPY_AND_ASSIGN(OCSPNSSInitialization); | 136 DISALLOW_COPY_AND_ASSIGN(OCSPNSSInitialization); |
| 137 }; | 137 }; |
| 138 | 138 |
| 139 base::LazyInstance<OCSPNSSInitialization> g_ocsp_nss_initialization( | 139 base::LazyInstance<OCSPNSSInitialization> g_ocsp_nss_initialization = |
| 140 base::LINKER_INITIALIZED); | 140 LAZY_INSTANCE_INITIALIZER; |
| 141 | 141 |
| 142 // Concrete class for SEC_HTTP_REQUEST_SESSION. | 142 // Concrete class for SEC_HTTP_REQUEST_SESSION. |
| 143 // Public methods except virtual methods of net::URLRequest::Delegate | 143 // Public methods except virtual methods of net::URLRequest::Delegate |
| 144 // (On* methods) run on certificate verifier thread (worker thread). | 144 // (On* methods) run on certificate verifier thread (worker thread). |
| 145 // Virtual methods of net::URLRequest::Delegate and private methods run | 145 // Virtual methods of net::URLRequest::Delegate and private methods run |
| 146 // on IO thread. | 146 // on IO thread. |
| 147 class OCSPRequestSession | 147 class OCSPRequestSession |
| 148 : public base::RefCountedThreadSafe<OCSPRequestSession>, | 148 : public base::RefCountedThreadSafe<OCSPRequestSession>, |
| 149 public net::URLRequest::Delegate { | 149 public net::URLRequest::Delegate { |
| 150 public: | 150 public: |
| (...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 931 void SetURLRequestContextForOCSP(URLRequestContext* request_context) { | 931 void SetURLRequestContextForOCSP(URLRequestContext* request_context) { |
| 932 pthread_mutex_lock(&g_request_context_lock); | 932 pthread_mutex_lock(&g_request_context_lock); |
| 933 if (request_context) { | 933 if (request_context) { |
| 934 DCHECK(!g_request_context); | 934 DCHECK(!g_request_context); |
| 935 } | 935 } |
| 936 g_request_context = request_context; | 936 g_request_context = request_context; |
| 937 pthread_mutex_unlock(&g_request_context_lock); | 937 pthread_mutex_unlock(&g_request_context_lock); |
| 938 } | 938 } |
| 939 | 939 |
| 940 } // namespace net | 940 } // namespace net |
| OLD | NEW |