tls (common): don't use TLS servername if openssl < 1.0.0
authorAndrei Pelinescu-Onciul <andrei@iptel.org>
Thu, 23 Apr 2009 11:35:42 +0000 (13:35 +0200)
committerAndrei Pelinescu-Onciul <andrei@iptel.org>
Thu, 23 Apr 2009 11:40:02 +0000 (13:40 +0200)
- TLS extensions and more specifically server_name support have
  appeared between openssl 0.9.8l and 1.0.0.

modules/tls/tls_init.c
modules/tls/tls_init.h
modules/tls/tls_select.c

index 4d78e66..b0f07f9 100644 (file)
@@ -84,6 +84,11 @@ to compile on the  _target_ system)"
 #endif /* OPENSSL_VERSION_NUMBER */
 #endif /* TLS_KSSL_WORKARROUND */
 
+/* openssl < 1. 0 */
+#if OPENSSL_VERSION_NUMBER < 0x01000000L
+#      warning "openssl < 1.0: no TLS extensions or server name support"
+#endif /* OPENSSL_VERION < 1.0 */
+
 
 
 #ifndef OPENSSL_NO_COMP
index 4e3f8f8..43e5f49 100644 (file)
 #include "../../ip_addr.h"
 #include "tls_domain.h"
 
+/* openssl < 1. 0 */
+#if OPENSSL_VERSION_NUMBER < 0x01000000L
+/* alternative: check ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME */
+#define OPENSSL_NO_TLSEXT
+#endif /* OPENSSL_VERION < 1.0 */
 #ifndef OPENSSL_NO_KRB5
 /* enable workarround for openssl kerberos wrong malloc bug
  * (kssl code uses libc malloc/free/calloc instead of OPENSSL_malloc & 
index d6efe93..85d4ca4 100644 (file)
@@ -39,6 +39,7 @@
 #include "tls_server.h"
 #include "tls_select.h"
 #include "tls_mod.h"
+#include "tls_init.h" /* features macros */
 
 enum {
        CERT_LOCAL = 1,   /* Select local certificate */
@@ -932,7 +933,7 @@ static int sel_cert(str* res, select_t* s, struct sip_msg* msg)
 
 
 #ifdef OPENSSL_NO_TLSEXT
-static int get_tlsext_sn(str* res, int type, sip_msg_t* msg)
+static int get_tlsext_sn(str* res, sip_msg_t* msg)
 {
        ERR("TLS extension 'server name' is not available! "
                "please install openssl with TLS extension support and recompile "