summaryrefslogtreecommitdiff
path: root/src/SocketCore.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/SocketCore.cc')
-rw-r--r--src/SocketCore.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/SocketCore.cc b/src/SocketCore.cc
index ef77f512..f459c650 100644
--- a/src/SocketCore.cc
+++ b/src/SocketCore.cc
@@ -742,8 +742,18 @@ void SocketCore::prepareSecureConnection()
}
#endif // HAVE_LIBSSL
#ifdef HAVE_LIBGNUTLS
+ int r;
gnutls_init(&sslSession, GNUTLS_CLIENT);
- gnutls_set_default_priority(sslSession);
+ // It seems err is not error message, but the argument string
+ // which causes syntax error.
+ const char* err;
+ // Disables TLS1.1 here because there are servers that don't
+ // understand TLS1.1.
+ r = gnutls_priority_set_direct(sslSession, "NORMAL:!VERS-TLS1.1", &err);
+ if(r != GNUTLS_E_SUCCESS) {
+ throw DL_ABORT_EX
+ (StringFormat(EX_SSL_INIT_FAILURE, gnutls_strerror(r)).str());
+ }
// put the x509 credentials to the current session
gnutls_credentials_set(sslSession, GNUTLS_CRD_CERTIFICATE,
_tlsContext->getCertCred());