diff options
author | ukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-17 03:22:38 +0000 |
---|---|---|
committer | ukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-17 03:22:38 +0000 |
commit | 24a2fcd9c0b60eca6705eff423e54413a6318f5e (patch) | |
tree | f1d9943659240c983f73c919208091b7e6bbcd50 /net/ocsp | |
parent | 491bb6962629f1f2352c24d9f8f73c70fe65871b (diff) | |
download | chromium_src-24a2fcd9c0b60eca6705eff423e54413a6318f5e.zip chromium_src-24a2fcd9c0b60eca6705eff423e54413a6318f5e.tar.gz chromium_src-24a2fcd9c0b60eca6705eff423e54413a6318f5e.tar.bz2 |
Refactor OCSPInitSingleton.
Move OCSPInitSingleton constructor.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/506028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34805 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/ocsp')
-rw-r--r-- | net/ocsp/nss_ocsp.cc | 73 |
1 files changed, 50 insertions, 23 deletions
diff --git a/net/ocsp/nss_ocsp.cc b/net/ocsp/nss_ocsp.cc index ad761f5..0c0cabb 100644 --- a/net/ocsp/nss_ocsp.cc +++ b/net/ocsp/nss_ocsp.cc @@ -35,6 +35,34 @@ const int kRecvBufferSize = 4096; // CertVerifier's thread (i.e. worker pool, not on the I/O thread). // It supports blocking mode only. +SECStatus OCSPCreateSession(const char* host, PRUint16 portnum, + SEC_HTTP_SERVER_SESSION* pSession); +SECStatus OCSPKeepAliveSession(SEC_HTTP_SERVER_SESSION session, + PRPollDesc **pPollDesc); +SECStatus OCSPFreeSession(SEC_HTTP_SERVER_SESSION session); + +SECStatus OCSPCreate(SEC_HTTP_SERVER_SESSION session, + const char* http_protocol_variant, + const char* path_and_query_string, + const char* http_request_method, + const PRIntervalTime timeout, + SEC_HTTP_REQUEST_SESSION* pRequest); +SECStatus OCSPSetPostData(SEC_HTTP_REQUEST_SESSION request, + const char* http_data, + const PRUint32 http_data_len, + const char* http_content_type); +SECStatus OCSPAddHeader(SEC_HTTP_REQUEST_SESSION request, + const char* http_header_name, + const char* http_header_value); +SECStatus OCSPTrySendAndReceive(SEC_HTTP_REQUEST_SESSION request, + PRPollDesc** pPollDesc, + PRUint16* http_response_code, + const char** http_response_content_type, + const char** http_response_headers, + const char** http_response_data, + PRUint32* http_response_data_len); +SECStatus OCSPFree(SEC_HTTP_REQUEST_SESSION request); + class OCSPInitSingleton : public MessageLoop::DestructionObserver { public: // Called on IO thread. @@ -65,7 +93,27 @@ class OCSPInitSingleton : public MessageLoop::DestructionObserver { private: friend struct DefaultSingletonTraits<OCSPInitSingleton>; - OCSPInitSingleton(); + OCSPInitSingleton() + : io_loop_(MessageLoopForIO::current()) { + DCHECK(io_loop_); + io_loop_->AddDestructionObserver(this); + client_fcn_.version = 1; + SEC_HttpClientFcnV1Struct *ft = &client_fcn_.fcnTable.ftable1; + ft->createSessionFcn = OCSPCreateSession; + ft->keepAliveSessionFcn = OCSPKeepAliveSession; + ft->freeSessionFcn = OCSPFreeSession; + ft->createFcn = OCSPCreate; + ft->setPostDataFcn = OCSPSetPostData; + ft->addHeaderFcn = OCSPAddHeader; + ft->trySendAndReceiveFcn = OCSPTrySendAndReceive; + ft->cancelFcn = NULL; + ft->freeFcn = OCSPFree; + SECStatus status = SEC_RegisterDefaultHttpClient(&client_fcn_); + if (status != SECSuccess) { + NOTREACHED() << "Error initializing OCSP: " << PR_GetError(); + } + } + virtual ~OCSPInitSingleton() { // IO thread was already deleted before the singleton is deleted // in AtExitManager. @@ -548,7 +596,7 @@ SECStatus OCSPTrySendAndReceive(SEC_HTTP_REQUEST_SESSION request, http_response_data, http_response_data_len) ? SECSuccess : SECFailure; -failed: + failed: if (http_response_data_len) { // We must always set an output value, even on failure. The output value 0 // means the failure was unrelated to the acceptable response data length. @@ -566,27 +614,6 @@ SECStatus OCSPFree(SEC_HTTP_REQUEST_SESSION request) { return SECSuccess; } -OCSPInitSingleton::OCSPInitSingleton() - : io_loop_(MessageLoopForIO::current()) { - DCHECK(io_loop_); - io_loop_->AddDestructionObserver(this); - client_fcn_.version = 1; - SEC_HttpClientFcnV1Struct *ft = &client_fcn_.fcnTable.ftable1; - ft->createSessionFcn = OCSPCreateSession; - ft->keepAliveSessionFcn = OCSPKeepAliveSession; - ft->freeSessionFcn = OCSPFreeSession; - ft->createFcn = OCSPCreate; - ft->setPostDataFcn = OCSPSetPostData; - ft->addHeaderFcn = OCSPAddHeader; - ft->trySendAndReceiveFcn = OCSPTrySendAndReceive; - ft->cancelFcn = NULL; - ft->freeFcn = OCSPFree; - SECStatus status = SEC_RegisterDefaultHttpClient(&client_fcn_); - if (status != SECSuccess) { - NOTREACHED() << "Error initializing OCSP: " << PR_GetError(); - } -} - } // anonymous namespace namespace net { |