Better document PQinitSSL(0) behavior in regards to libcrypto.
authorBruce Momjian <bruce@momjian.us>
Sat, 28 Mar 2009 01:36:11 +0000 (01:36 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 28 Mar 2009 01:36:11 +0000 (01:36 +0000)
doc/src/sgml/libpq.sgml
src/interfaces/libpq/fe-secure.c

index 68f938b926f2cafb243a41dcfdbc2f91b862d636..0a4e87fe8edfbbb46cf331f25af4ebfb08eb0561 100644 (file)
@@ -6169,11 +6169,13 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough)
   </para>
 
   <para>
-   If you are using <acronym>SSL</> inside your application (in addition
-   to inside <application>libpq</application>), you can call
-   <function>PQinitSSL(int)</> with <literal>0</> to tell
-   <application>libpq</application> that the <acronym>SSL</> library
-   has already been initialized by your application.
+   If your application initializes <literal>libssl</> or
+   <literal>libcrypto</> libraries and <application>libpq</application>
+   is built with <acronym>SSL</> support, you should call
+   <function>PQinitSSL(0)</> to tell <application>libpq</application>
+   that the <literal>libssl</> and <literal>libcrypto</> libraries
+   have been initialized by your application so
+   <application>libpq</application> will not initialize those libraries.
    <!-- If this URL changes replace it with a URL to www.archive.org. -->
    See <ulink
    url="http://h71000.www7.hp.com/doc/83final/BA554_90007/ch04.html"></ulink>
index 7c229c3efe634134ec30e1e8ca9a56fa72c1b7db..e2af1e12d5e214e64fc2fe5f4da1fac81473fd91 100644 (file)
@@ -870,6 +870,7 @@ init_ssl_system(PGconn *conn)
 
                if (ssl_open_connections++ == 0)
                {
+                       /* This is actually libcrypto, not libssl. */
                        /* These are only required for threaded SSL applications */
                        CRYPTO_set_id_callback(pq_threadidcallback);
                        CRYPTO_set_locking_callback(pq_lockingcallback);
@@ -934,6 +935,7 @@ destroy_ssl_system(void)
 
                if (ssl_open_connections == 0)
                {
+                       /* This is actually libcrypto, not libssl. */
                        /* No connections left, unregister all callbacks */
                        CRYPTO_set_locking_callback(NULL);
                        CRYPTO_set_id_callback(NULL);