diff options
-rw-r--r-- | doc/src/sgml/libpq.sgml | 14 | ||||
-rw-r--r-- | doc/src/sgml/release-9.5.sgml | 28 | ||||
-rw-r--r-- | src/interfaces/libpq/exports.txt | 2 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-secure-openssl.c | 6 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-secure.c | 6 | ||||
-rw-r--r-- | src/interfaces/libpq/libpq-fe.h | 2 |
6 files changed, 31 insertions, 27 deletions
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index 235a168815b..79047b37611 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -1873,7 +1873,7 @@ int PQsslInUse(const PGconn *conn); </listitem> </varlistentry> - <varlistentry id="libpq-pqsslAttribute"> + <varlistentry id="libpq-pqsslattribute"> <term><function>PQsslAttribute</function><indexterm><primary>PQsslAttribute</></></term> <listitem> <para> @@ -1947,13 +1947,13 @@ const char *PQsslAttribute(const PGconn *conn, const char *attribute_name); </listitem> </varlistentry> - <varlistentry id="libpq-pqsslattributes"> - <term><function>PQsslAttributes</function><indexterm><primary>PQsslAttributes</></></term> + <varlistentry id="libpq-pqsslattributenames"> + <term><function>PQsslAttributeNames</function><indexterm><primary>PQsslAttributeNames</></></term> <listitem> <para> Return an array of SSL attribute names available. The array is terminated by a NULL pointer. <synopsis> -const char **PQsslAttributes(const PGconn *conn); +const char * const * PQsslAttributeNames(const PGconn *conn); </synopsis> </para> </listitem> @@ -1963,15 +1963,15 @@ const char **PQsslAttributes(const PGconn *conn); <term><function>PQsslStruct</function><indexterm><primary>PQsslStruct</></></term> <listitem> <para> - Return a pointer to an SSL-implementation specific object describing + Return a pointer to an SSL-implementation-specific object describing the connection. <synopsis> void *PQsslStruct(const PGconn *conn, const char *struct_name); </synopsis> </para> <para> - The structs available depends on the SSL implementation in use. - For OpenSSL, there is one struct, under the name "OpenSSL", + The struct(s) available depend on the SSL implementation in use. + For OpenSSL, there is one struct, available under the name "OpenSSL", and it returns a pointer to the OpenSSL <literal>SSL</literal> struct. To use this function, code along the following lines could be used: <programlisting><![CDATA[ diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml index 9055387832a..771ad0ca6fa 100644 --- a/doc/src/sgml/release-9.5.sgml +++ b/doc/src/sgml/release-9.5.sgml @@ -608,18 +608,22 @@ FIXME: Add Andres 2015-02-03 [91fa7b4] Heikki..: Add API functions to libpq to interrogate SSL .. --> <para> - Add <application>libpq</> function <link - linkend="libpq-pqsslAttribute"><function>PQsslAttribute()</></> - that returns <acronym>SSL</> information (Heikki Linnakangas) - </para> - - <para> - While <link linkend="libpq-pqgetssl"><function>PQgetssl()</></> - can still be used to call <productname>OpenSSL</> - functions, <function>PQsslAttribute()</> returns <acronym>SSL</> - information in an <acronym>SSL</>-implementation-independent way. - (Future versions of libpq might support other <acronym>SSL</> - implementations.) + Add <application>libpq</> functions to return <acronym>SSL</> + information in an implementation-independent way (Heikki Linnakangas) + </para> + + <para> + While <link linkend="libpq-pqgetssl"><function>PQgetssl()</></> can + still be used to call <productname>OpenSSL</> functions, it is now + considered deprecated because future versions + of <application>libpq</> might support other <acronym>SSL</> + implementations. When possible, use the new + functions <link + linkend="libpq-pqsslattribute"><function>PQsslAttribute()</></>, <link + linkend="libpq-pqsslattributenames"><function>PQsslAttributeNames()</></>, + and <link linkend="libpq-pqsslinuse"><function>PQsslInUse()</></> + to obtain <acronym>SSL</> information in + an <acronym>SSL</>-implementation-independent way. </para> </listitem> diff --git a/src/interfaces/libpq/exports.txt b/src/interfaces/libpq/exports.txt index 4a21bf1d2cf..33f80e63e5b 100644 --- a/src/interfaces/libpq/exports.txt +++ b/src/interfaces/libpq/exports.txt @@ -167,5 +167,5 @@ lo_truncate64 164 PQconninfo 165 PQsslInUse 166 PQsslStruct 167 -PQsslAttributes 168 +PQsslAttributeNames 168 PQsslAttribute 169 diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c index 4b2a324634b..45ad7321bbe 100644 --- a/src/interfaces/libpq/fe-secure-openssl.c +++ b/src/interfaces/libpq/fe-secure-openssl.c @@ -1532,10 +1532,10 @@ PQsslStruct(PGconn *conn, const char *struct_name) return NULL; } -const char ** -PQsslAttributes(PGconn *conn) +const char *const * +PQsslAttributeNames(PGconn *conn) { - static const char *result[] = { + static const char *const result[] = { "library", "key_bits", "cipher", diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index db91e52ee90..aa5af7340fe 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -408,10 +408,10 @@ PQsslAttribute(PGconn *conn, const char *attribute_name) return NULL; } -const char ** -PQsslAttributes(PGconn *conn) +const char *const * +PQsslAttributeNames(PGconn *conn) { - static const char *result[] = {NULL}; + static const char *const result[] = {NULL}; return result; } diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h index a73eae2087a..bcd14ac1326 100644 --- a/src/interfaces/libpq/libpq-fe.h +++ b/src/interfaces/libpq/libpq-fe.h @@ -322,7 +322,7 @@ extern int PQsetClientEncoding(PGconn *conn, const char *encoding); extern int PQsslInUse(PGconn *conn); extern void *PQsslStruct(PGconn *conn, const char *struct_name); extern const char *PQsslAttribute(PGconn *conn, const char *attribute_name); -extern const char **PQsslAttributes(PGconn *conn); +extern const char *const * PQsslAttributeNames(PGconn *conn); /* Get the OpenSSL structure associated with a connection. Returns NULL for * unencrypted connections or if any other TLS library is in use. */ |