diff options
Diffstat (limited to 'contrib/sslinfo/sslinfo.c')
-rw-r--r-- | contrib/sslinfo/sslinfo.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/contrib/sslinfo/sslinfo.c b/contrib/sslinfo/sslinfo.c index a8145653c0c..1d0aa321bb9 100644 --- a/contrib/sslinfo/sslinfo.c +++ b/contrib/sslinfo/sslinfo.c @@ -4,7 +4,7 @@ * Written by Victor B. Wagner <vitus@cryptocom.ru>, Cryptocom LTD * This file is distributed under BSD-style license. * - * $PostgreSQL: pgsql/contrib/sslinfo/sslinfo.c,v 1.8 2008/11/10 14:57:38 tgl Exp $ + * $PostgreSQL: pgsql/contrib/sslinfo/sslinfo.c,v 1.9 2010/07/27 23:43:42 rhaas Exp $ */ #include "postgres.h" @@ -23,6 +23,8 @@ PG_MODULE_MAGIC; Datum ssl_is_used(PG_FUNCTION_ARGS); +Datum ssl_version(PG_FUNCTION_ARGS); +Datum ssl_cipher(PG_FUNCTION_ARGS); Datum ssl_client_cert_present(PG_FUNCTION_ARGS); Datum ssl_client_serial(PG_FUNCTION_ARGS); Datum ssl_client_dn_field(PG_FUNCTION_ARGS); @@ -49,6 +51,32 @@ ssl_is_used(PG_FUNCTION_ARGS) /* + * Returns SSL cipher currently in use. + */ +PG_FUNCTION_INFO_V1(ssl_version); +Datum +ssl_version(PG_FUNCTION_ARGS) +{ + if (MyProcPort->ssl == NULL) + PG_RETURN_NULL(); + PG_RETURN_TEXT_P(cstring_to_text(SSL_get_version(MyProcPort->ssl))); +} + + +/* + * Returns SSL cipher currently in use. + */ +PG_FUNCTION_INFO_V1(ssl_cipher); +Datum +ssl_cipher(PG_FUNCTION_ARGS) +{ + if (MyProcPort->ssl == NULL) + PG_RETURN_NULL(); + PG_RETURN_TEXT_P(cstring_to_text(SSL_get_cipher(MyProcPort->ssl))); +} + + +/* * Indicates whether current client have provided a certificate * * Function has no arguments. Returns bool. True if current session |