summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-08 15:38:40 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-08 15:38:40 +0000
commit53d2a64cc5fdbb515fafae6a6024c8c834fdafd6 (patch)
treefa4de4e8da2d31f8e10e570d3a6fcfd7092c4577 /src
parent96113c074566813959cf007dc92b96cb9808e6b8 (diff)
2009-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Removed TLS1.1 protocol support when aria2 is built with gnutls for compatibility issue. * src/SocketCore.cc
Diffstat (limited to 'src')
-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());