mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-24 05:02:10 +00:00
Support setting enabled TLS versions in mod_sofia
Previously if tls-version was set to tlsv1 we supported only TLSv1, but if it was set to sslv23 we supported all versions of TLS. This was a weird incorrectly documented behavior that we hope no one was relying on. Now we can pass a comma-separated list of TLS/SSL versions that we would like to support in tls-version. FS-5839 --resolve
This commit is contained in:
@@ -4579,11 +4579,26 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name)
|
||||
} else if (!strcasecmp(var, "tls-verify-in-subjects")) {
|
||||
profile->tls_verify_in_subjects_str = switch_core_strdup(profile->pool, val);
|
||||
} else if (!strcasecmp(var, "tls-version")) {
|
||||
|
||||
if (!strcasecmp(val, "tlsv1")) {
|
||||
profile->tls_version = 1;
|
||||
} else {
|
||||
profile->tls_version = 0;
|
||||
char *ps = val, *pe;
|
||||
while (1) {
|
||||
int n;
|
||||
pe = strchr(ps,',');
|
||||
if (!pe && !(pe = memchr(ps,0,1024))) break;
|
||||
n = pe-ps;
|
||||
if (n==5 && !strncasecmp(ps, "sslv2", n))
|
||||
profile->tls_version |= SOFIA_TLS_VERSION_SSLv2;
|
||||
if (n==5 && !strncasecmp(ps, "sslv3", n))
|
||||
profile->tls_version |= SOFIA_TLS_VERSION_SSLv3;
|
||||
if (n==6 && !strncasecmp(ps, "sslv23", n))
|
||||
profile->tls_version |= SOFIA_TLS_VERSION_SSLv2 | SOFIA_TLS_VERSION_SSLv3;
|
||||
if (n==5 && !strncasecmp(ps, "tlsv1", n))
|
||||
profile->tls_version |= SOFIA_TLS_VERSION_TLSv1;
|
||||
if (n==7 && !strncasecmp(ps, "tlsv1.1", n))
|
||||
profile->tls_version |= SOFIA_TLS_VERSION_TLSv1_1;
|
||||
if (n==7 && !strncasecmp(ps, "tlsv1.2", n))
|
||||
profile->tls_version |= SOFIA_TLS_VERSION_TLSv1_2;
|
||||
ps=pe+1;
|
||||
if (!*pe) break;
|
||||
}
|
||||
} else if (!strcasecmp(var, "tls-timeout")) {
|
||||
int v = atoi(val);
|
||||
|
||||
Reference in New Issue
Block a user