crypto: make root_cert_store variable extern
authorBen Noordhuis <info@bnoordhuis.nl>
Thu, 29 Aug 2013 12:05:42 +0000 (14:05 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Thu, 29 Aug 2013 12:05:44 +0000 (14:05 +0200)
Before this commit it was declared static (in a header file!), meaning
it got duplicated in every file that includes it.

A few duplicated pointers is not the end of the world but it introduces
a lot of potential for confusion because root_cert_store in file A is
not the root_cert_store in file B.

Moral of the story: don't declare static variables in header files.

src/node_crypto.cc
src/node_crypto.h

index 531afdc..81ba447 100644 (file)
@@ -118,6 +118,8 @@ static Persistent<FunctionTemplate> secure_context_constructor;
 
 static uv_rwlock_t* locks;
 
+X509_STORE* root_cert_store;
+
 // Just to generate static methods
 template class SSLWrap<TLSCallbacks>;
 template void SSLWrap<TLSCallbacks>::AddMethods(Handle<FunctionTemplate> t);
index d9063a5..98e0f58 100644 (file)
@@ -51,7 +51,7 @@ namespace crypto {
 
 extern int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx);
 
-static X509_STORE* root_cert_store;
+extern X509_STORE* root_cert_store;
 
 // Forward declaration
 class Connection;