[Bugfix] Register GNUTLS debug routines only when we actually need them.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4295 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx
index c774c3d..6028792 100644
--- a/common/rfb/CSecurityTLS.cxx
+++ b/common/rfb/CSecurityTLS.cxx
@@ -62,23 +62,18 @@
#define WITHOUT_X509_TIMES
#endif
-#define TLS_DEBUG
-
using namespace rfb;
StringParameter CSecurityTLS::x509ca("x509ca", "X509 CA certificate", "", ConfViewer);
StringParameter CSecurityTLS::x509crl("x509crl", "X509 CRL file", "", ConfViewer);
static LogWriter vlog("TLS");
-
-#ifdef TLS_DEBUG
-static LogWriter vlog_raw("Raw TLS");
+static LogWriter vlog_raw("RawTLS");
static void debug_log(int level, const char* str)
{
vlog_raw.debug(str);
}
-#endif
void CSecurityTLS::initGlobal()
{
@@ -87,10 +82,11 @@
if (!globalInitDone) {
gnutls_global_init();
-#ifdef TLS_DEBUG
- gnutls_global_set_log_level(10);
- gnutls_global_set_log_function(debug_log);
-#endif
+ /* 100 means debug log */
+ if (vlog_raw.getLevel() >= 100) {
+ gnutls_global_set_log_level(10);
+ gnutls_global_set_log_function(debug_log);
+ }
globalInitDone = true;
}
diff --git a/common/rfb/LogWriter.h b/common/rfb/LogWriter.h
index 124c58e..7f8b68d 100644
--- a/common/rfb/LogWriter.h
+++ b/common/rfb/LogWriter.h
@@ -51,6 +51,7 @@
void setLog(Logger *logger);
void setLevel(int level);
+ int getLevel(void) { return m_level; }
inline void write(int level, const char* format, ...) {
if (m_log && (level <= m_level)) {
diff --git a/common/rfb/SSecurityTLS.cxx b/common/rfb/SSecurityTLS.cxx
index e6202a8..2ea84e0 100644
--- a/common/rfb/SSecurityTLS.cxx
+++ b/common/rfb/SSecurityTLS.cxx
@@ -35,7 +35,6 @@
#include <rdr/TLSOutStream.h>
#define DH_BITS 1024 /* XXX This should be configurable! */
-#define TLS_DEBUG
using namespace rfb;
@@ -46,13 +45,12 @@
("x509key", "specifies path to the key of the x509 certificate in PEM format", "", ConfServer);
static LogWriter vlog("TLS");
+static LogWriter vlog_raw("RawTLS");
-#ifdef TLS_DEBUG
static void debug_log(int level, const char* str)
{
vlog.debug(str);
}
-#endif
void SSecurityTLS::initGlobal()
{
@@ -62,10 +60,11 @@
if (gnutls_global_init() != GNUTLS_E_SUCCESS)
throw AuthFailureException("gnutls_global_init failed");
-#ifdef TLS_DEBUG
- gnutls_global_set_log_level(10);
- gnutls_global_set_log_function(debug_log);
-#endif
+ /* 100 means debug log */
+ if (vlog_raw.getLevel() >= 100) {
+ gnutls_global_set_log_level(10);
+ gnutls_global_set_log_function(debug_log);
+ }
globalInitDone = true;
}