Module: kamailio
Branch: master
Commit: 08d22b7bd95828554e30f4c23e906cd9d234e1cd
URL: 
https://github.com/kamailio/kamailio/commit/08d22b7bd95828554e30f4c23e906cd9d234e1cd

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Daniel-Constantin Mierla <mico...@gmail.com>
Date: 2019-05-20T10:56:08+02:00

tls: register SNI callback for server default profile

- make SNI work for other profile when the default one does not have
server_name
- GH #1938

---

Modified: src/modules/tls/tls_domain.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/08d22b7bd95828554e30f4c23e906cd9d234e1cd.diff
Patch: 
https://github.com/kamailio/kamailio/commit/08d22b7bd95828554e30f4c23e906cd9d234e1cd.patch

---

diff --git a/src/modules/tls/tls_domain.c b/src/modules/tls/tls_domain.c
index f22b8e8049..fff4603eba 100644
--- a/src/modules/tls/tls_domain.c
+++ b/src/modules/tls/tls_domain.c
@@ -1061,17 +1061,20 @@ static int ksr_tls_fix_domain(tls_domain_t* d, 
tls_domain_t* def)
                * check server domains for server_name extension and register
                * callback function
                */
-               if ((d->type & TLS_DOMAIN_SRV) && d->server_name.len>0) {
+               if ((d->type & TLS_DOMAIN_SRV)
+                               && (d->server_name.len>0 || (d->type & 
TLS_DOMAIN_DEF))) {
                        if (!SSL_CTX_set_tlsext_servername_callback(d->ctx[i], 
tls_server_name_cb)) {
                                LM_ERR("register server_name callback handler 
for socket "
                                        "[%s:%d], server_name='%s' failed for 
proc %d\n",
-                                       ip_addr2a(&d->ip), d->port, 
d->server_name.s, i);
+                                       ip_addr2a(&d->ip), d->port,
+                                       
(d->server_name.s)?d->server_name.s:"<default>", i);
                                return -1;
                        }
                        if (!SSL_CTX_set_tlsext_servername_arg(d->ctx[i], d)) {
                                LM_ERR("register server_name callback handler 
data for socket "
                                        "[%s:%d], server_name='%s' failed for 
proc %d\n",
-                                       ip_addr2a(&d->ip), d->port, 
d->server_name.s, i);
+                                       ip_addr2a(&d->ip), d->port,
+                                       
(d->server_name.s)?d->server_name.s:"<default>", i);
                                return -1;
                        }
                }
@@ -1079,10 +1082,11 @@ static int ksr_tls_fix_domain(tls_domain_t* d, 
tls_domain_t* def)
        }
 
 #ifndef OPENSSL_NO_TLSEXT
-       if ((d->type & TLS_DOMAIN_SRV) && d->server_name.len>0) {
+       if ((d->type & TLS_DOMAIN_SRV)
+                       && (d->server_name.len>0 || (d->type & 
TLS_DOMAIN_DEF))) {
                LM_NOTICE("registered server_name callback handler for socket "
                        "[%s:%d], server_name='%s' ...\n", ip_addr2a(&d->ip), 
d->port,
-                       d->server_name.s);
+                       (d->server_name.s)?d->server_name.s:"<default>");
        }
 #endif
 


_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to