summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-17 03:22:38 +0000
committerukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-17 03:22:38 +0000
commit24a2fcd9c0b60eca6705eff423e54413a6318f5e (patch)
treef1d9943659240c983f73c919208091b7e6bbcd50 /net
parent491bb6962629f1f2352c24d9f8f73c70fe65871b (diff)
downloadchromium_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')
-rw-r--r--net/ocsp/nss_ocsp.cc73
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 {