summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-05-16 13:53:03 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-05-16 13:53:03 +0200
commit4495e9c3feb5869f5b750bf47397845e5d02949f (patch)
tree3c9ace6fc9c985f08b584b2c771606bbfa2a2c6c
parent9c21137aed2910de498832f598ae49238f40a27b (diff)
downloadgnutls-4495e9c3feb5869f5b750bf47397845e5d02949f.tar.gz
Corrected issue on the %SSL3_RECORD_VERSION priority string. It now
works even when resuming a session.
-rw-r--r--lib/gnutls_handshake.c9
-rw-r--r--lib/gnutls_state.c3
-rw-r--r--lib/gnutls_state.h3
3 files changed, 5 insertions, 10 deletions
diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c
index f24fa631fc..dc1fe3a5a2 100644
--- a/lib/gnutls_handshake.c
+++ b/lib/gnutls_handshake.c
@@ -2020,15 +2020,10 @@ _gnutls_send_client_hello (gnutls_session_t session, int again)
* (RSA uses it).
*/
_gnutls_set_adv_version (session, hver);
+ _gnutls_set_current_version (session, hver);
if (session->internals.priorities.ssl3_record_version)
{
- /* Honor the SSL3_RECORD_VERSION option
- */
- _gnutls_set_current_version (session, GNUTLS_SSL3);
- }
- else
- {
/* Some old implementations do not interoperate if we send a
* different version in the record layer.
* It seems they prefer to read the record's version
@@ -2037,7 +2032,7 @@ _gnutls_send_client_hello (gnutls_session_t session, int again)
* handshake packet and ignore the one in the packet's record
* header.
*/
- _gnutls_set_current_version (session, hver);
+ _gnutls_record_set_default_version (session, 3, 0);
}
/* In order to know when this session was initiated.
diff --git a/lib/gnutls_state.c b/lib/gnutls_state.c
index 46c1a360ac..356a22ec55 100644
--- a/lib/gnutls_state.c
+++ b/lib/gnutls_state.c
@@ -48,9 +48,6 @@
/* These should really be static, but src/tests.c calls them. Make
them public functions? */
void
-_gnutls_record_set_default_version (gnutls_session_t session,
- unsigned char major, unsigned char minor);
-void
_gnutls_rsa_pms_set_version (gnutls_session_t session,
unsigned char major, unsigned char minor);
diff --git a/lib/gnutls_state.h b/lib/gnutls_state.h
index bc69bd34c8..9e465470a1 100644
--- a/lib/gnutls_state.h
+++ b/lib/gnutls_state.h
@@ -30,6 +30,9 @@
void _gnutls_session_cert_type_set (gnutls_session_t session,
gnutls_certificate_type_t);
+void
+_gnutls_record_set_default_version (gnutls_session_t session,
+ unsigned char major, unsigned char minor);
#include <gnutls_auth.h>