Better document PQinitSSL(0) behavior in regards to libcrypto.

This commit is contained in:
Bruce Momjian 2009-03-28 01:36:11 +00:00
parent 2938f8c4ea
commit 3ab95c2ab0
2 changed files with 11 additions and 7 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.279 2009/03/23 01:45:29 momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.280 2009/03/28 01:36:11 momjian Exp $ -->
<chapter id="libpq">
<title><application>libpq</application> - C Library</title>
@ -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>

View File

@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.119 2009/01/28 15:06:47 mha Exp $
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.120 2009/03/28 01:36:11 momjian Exp $
*
* NOTES
*
@ -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);