From: Nikos Mavrogiannopoulos Date: Sat, 12 Mar 2011 23:11:50 +0000 (+0100) Subject: session->internals.compression_method was removed. It was no longer required since... X-Git-Tag: gnutls_2_99_0~126 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3badb4696154b4d3504e119f0b02fc386925fa2f;p=thirdparty%2Fgnutls.git session->internals.compression_method was removed. It was no longer required since the new compression algorithm was stored to next epoch as well. --- diff --git a/lib/gnutls_constate.c b/lib/gnutls_constate.c index 1397af63aa..a853098fd8 100644 --- a/lib/gnutls_constate.c +++ b/lib/gnutls_constate.c @@ -526,6 +526,18 @@ _gnutls_check_algos (gnutls_session_t session, return 0; } +int _gnutls_epoch_get_compression(gnutls_session_t session, int epoch) +{ +record_parameters_st *params; +int ret; + + ret = _gnutls_epoch_get (session, epoch, ¶ms); + if (ret < 0) + return GNUTLS_COMP_UNKNOWN; + + return params->compression_algorithm; +} + /* Initializes the read connection session * (read encrypted data) */ @@ -540,10 +552,11 @@ _gnutls_read_connection_state_init (gnutls_session_t session) */ if (session->internals.resumed == RESUME_FALSE) { + ret = _gnutls_check_algos (session, &session-> security_parameters.current_cipher_suite, - session->internals.compression_method); + _gnutls_epoch_get_compression(session, epoch_next)); if (ret < 0) return ret; @@ -591,7 +604,7 @@ _gnutls_write_connection_state_init (gnutls_session_t session) ret = _gnutls_check_algos (session, &session-> security_parameters.current_cipher_suite, - session->internals.compression_method); + _gnutls_epoch_get_compression(session, epoch_next)); if (ret < 0) return ret; diff --git a/lib/gnutls_constate.h b/lib/gnutls_constate.h index 82744cbd70..49164a24de 100644 --- a/lib/gnutls_constate.h +++ b/lib/gnutls_constate.h @@ -30,6 +30,7 @@ int _gnutls_epoch_set_cipher_suite (gnutls_session_t session, int epoch_rel, cipher_suite_st * suite); int _gnutls_epoch_set_compression (gnutls_session_t session, int epoch_rel, gnutls_compression_method_t comp_algo); +int _gnutls_epoch_get_compression (gnutls_session_t session, int epoch_rel); void _gnutls_epoch_set_null_algos (gnutls_session_t session, record_parameters_st * params); int _gnutls_epoch_set_keys (gnutls_session_t session, uint16_t epoch); diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index 1255999c69..4d906427df 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -1045,8 +1045,6 @@ _gnutls_server_select_comp_method (gnutls_session_t session, return x; } - session->internals.compression_method = 0; - for (j = 0; j < datalen; j++) { for (i = 0; i < x; i++) @@ -1056,15 +1054,13 @@ _gnutls_server_select_comp_method (gnutls_session_t session, gnutls_compression_method_t method = _gnutls_compression_get_id (comps[i]); - session->internals.compression_method = method; gnutls_free (comps); _gnutls_epoch_set_compression (session, EPOCH_NEXT, method); _gnutls_handshake_log ("HSK[%p]: Selected Compression Method: %s\n", session, - gnutls_compression_get_name (session-> - internals.compression_method)); + gnutls_compression_get_name (method)); return 0; @@ -1553,10 +1549,7 @@ _gnutls_client_set_comp_method (gnutls_session_t session, opaque comp_method) return GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM; } - session->internals.compression_method = - _gnutls_compression_get_id (comp_method); - _gnutls_epoch_set_compression (session, EPOCH_NEXT, - session->internals.compression_method); + _gnutls_epoch_set_compression (session, EPOCH_NEXT, _gnutls_compression_get_id(comp_method)); return 0; } @@ -2142,11 +2135,10 @@ _gnutls_send_server_hello (gnutls_session_t session, int again) pos += 2; comp = - (uint8_t) _gnutls_compression_get_num (session->internals. - compression_method); + (uint8_t) _gnutls_compression_get_num ( + _gnutls_epoch_get_compression (session, session->security_parameters.epoch_next)); data[pos++] = comp; - if (extdata.length > 0) { datalen += extdata.length; diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h index aa8e44f299..1c18817571 100644 --- a/lib/gnutls_int.h +++ b/lib/gnutls_int.h @@ -646,9 +646,6 @@ typedef struct int last_handshake_in; int last_handshake_out; - /* this is the compression method we are going to use */ - gnutls_compression_method_t compression_method; - /* priorities */ struct gnutls_priority_st priorities; diff --git a/lib/gnutls_v2_compat.c b/lib/gnutls_v2_compat.c index 9d78287efe..add3274305 100644 --- a/lib/gnutls_v2_compat.c +++ b/lib/gnutls_v2_compat.c @@ -250,8 +250,7 @@ _gnutls_read_client_hello_v2 (gnutls_session_t session, opaque * data, session->internals.resumed = RESUME_FALSE; } - session->internals.compression_method = GNUTLS_COMP_NULL; - _gnutls_epoch_set_compression (session, EPOCH_NEXT, session->internals.compression_method); + _gnutls_epoch_set_compression (session, EPOCH_NEXT, GNUTLS_COMP_NULL); return 0; }