[SR-Dev] git:master: tls (common): don't use TLS servername if openssl < 1.0.0

Andrei Pelinescu-Onciul andrei at iptel.org
Thu Apr 23 13:39:57 CEST 2009


Module: sip-router
Branch: master
Commit: 0705191bec675f931a7a906dffcac6c2b7d25c75
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0705191bec675f931a7a906dffcac6c2b7d25c75

Author: Andrei Pelinescu-Onciul <andrei at iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei at iptel.org>
Date:   Thu Apr 23 13:35:42 2009 +0200

tls (common): don't use TLS servername if openssl < 1.0.0

- TLS extensions and more specifically server_name support have
  appeared between openssl 0.9.8l and 1.0.0.

---

 modules/tls/tls_init.c   |    5 +++++
 modules/tls/tls_init.h   |    5 +++++
 modules/tls/tls_select.c |    3 ++-
 3 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/modules/tls/tls_init.c b/modules/tls/tls_init.c
index 4d78e66..b0f07f9 100644
--- a/modules/tls/tls_init.c
+++ b/modules/tls/tls_init.c
@@ -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
diff --git a/modules/tls/tls_init.h b/modules/tls/tls_init.h
index 4e3f8f8..43e5f49 100644
--- a/modules/tls/tls_init.h
+++ b/modules/tls/tls_init.h
@@ -36,6 +36,11 @@
 #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 & 
diff --git a/modules/tls/tls_select.c b/modules/tls/tls_select.c
index d6efe93..85d4ca4 100644
--- a/modules/tls/tls_select.c
+++ b/modules/tls/tls_select.c
@@ -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 "




More information about the sr-dev mailing list