Repository: incubator-guacamole-server
Updated Branches:
  refs/heads/master c8fca9489 -> 1f8dbb265


GUACAMOLE-205: Use semantically-named macro rather than repeatedly and 
explicitly check OpenSSL version.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/commit/270d51d4
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/tree/270d51d4
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/diff/270d51d4

Branch: refs/heads/master
Commit: 270d51d4d4a121c331fbf3bab34e50b1f3b589d4
Parents: 98a5faa
Author: Michael Jumper <[email protected]>
Authored: Tue Feb 28 12:01:43 2017 -0800
Committer: Michael Jumper <[email protected]>
Committed: Tue Feb 28 13:01:30 2017 -0800

----------------------------------------------------------------------
 configure.ac         | 20 ++++++++++++++++++++
 src/common-ssh/ssh.c |  6 +++---
 src/guacd/daemon.c   |  6 +++---
 3 files changed, 26 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/270d51d4/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index cf6386e..c9391ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -261,6 +261,26 @@ then
                        [Whether libssl provides RSA_get0_key()])],,
             [#include <openssl/rsa.h>])
 
+        # OpenSSL 1.1 does away with explicit threading callbacks
+        AC_MSG_CHECKING([whether libssl requires threading callbacks])
+        AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+
+            #include <openssl/opensslv.h>
+
+            #if OPENSSL_VERSION_NUMBER < 0x10100000L
+            #error Threading callbacks required.
+            #endif
+
+            int main() {
+                return 0;
+            }
+
+          ]])],
+          [AC_MSG_RESULT([no])],
+          [AC_MSG_RESULT([yes])
+           AC_DEFINE([OPENSSL_REQUIRES_THREADING_CALLBACKS],,
+                     [Whether OpenSSL requires explicit threading callbacks 
for threadsafety])])
+
     fi
 fi
 

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/270d51d4/src/common-ssh/ssh.c
----------------------------------------------------------------------
diff --git a/src/common-ssh/ssh.c b/src/common-ssh/ssh.c
index 266f65d..57bc821 100644
--- a/src/common-ssh/ssh.c
+++ b/src/common-ssh/ssh.c
@@ -45,7 +45,7 @@
 GCRY_THREAD_OPTION_PTHREAD_IMPL;
 #endif
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#ifdef OPENSSL_REQUIRES_THREADING_CALLBACKS
 /**
  * Array of mutexes, used by OpenSSL.
  */
@@ -147,7 +147,7 @@ int guac_common_ssh_init(guac_client* client) {
     }
 #endif
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#ifdef OPENSSL_REQUIRES_THREADING_CALLBACKS
     /* Init threadsafety in OpenSSL */
     guac_common_ssh_openssl_init_locks(CRYPTO_num_locks());
     CRYPTO_set_id_callback(guac_common_ssh_openssl_id_callback);
@@ -167,7 +167,7 @@ int guac_common_ssh_init(guac_client* client) {
 }
 
 void guac_common_ssh_uninit() {
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#ifdef OPENSSL_REQUIRES_THREADING_CALLBACKS
     guac_common_ssh_openssl_free_locks(CRYPTO_num_locks());
 #endif
 }

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/270d51d4/src/guacd/daemon.c
----------------------------------------------------------------------
diff --git a/src/guacd/daemon.c b/src/guacd/daemon.c
index 082e0be..3adf433 100644
--- a/src/guacd/daemon.c
+++ b/src/guacd/daemon.c
@@ -153,7 +153,7 @@ static int daemonize() {
 }
 
 #ifdef ENABLE_SSL
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#ifdef OPENSSL_REQUIRES_THREADING_CALLBACKS
 /**
  * Array of mutexes, used by OpenSSL.
  */
@@ -361,7 +361,7 @@ int main(int argc, char* argv[]) {
 
         guacd_log(GUAC_LOG_INFO, "Communication will require SSL/TLS.");
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#ifdef OPENSSL_REQUIRES_THREADING_CALLBACKS
         /* Init threadsafety in OpenSSL */
         guacd_openssl_init_locks(CRYPTO_num_locks());
         CRYPTO_set_id_callback(guacd_openssl_id_callback);
@@ -494,7 +494,7 @@ int main(int argc, char* argv[]) {
 
 #ifdef ENABLE_SSL
     if (ssl_context != NULL) {
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#ifdef OPENSSL_REQUIRES_THREADING_CALLBACKS
         guacd_openssl_free_locks(CRYPTO_num_locks());
 #endif
         SSL_CTX_free(ssl_context);

Reply via email to