From: Nikos Mavrogiannopoulos Date: Tue, 13 Dec 2011 19:19:35 +0000 (+0100) Subject: server precedence also used in compression methods. X-Git-Tag: gnutls_3_0_9~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=97aa82f178dbed11deb3046e127700f91cd1874d;p=thirdparty%2Fgnutls.git server precedence also used in compression methods. --- diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index 6480033bcd..bf75919d72 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -987,24 +987,47 @@ _gnutls_server_select_comp_method (gnutls_session_t session, return x; } - for (j = 0; j < datalen; j++) + if (session->internals.priorities.server_precedence == 0) { - for (i = 0; i < x; i++) + for (j = 0; j < datalen; j++) { - if (comps[i] == data[j]) + for (i = 0; i < x; i++) { - gnutls_compression_method_t method = - _gnutls_compression_get_id (comps[i]); + if (comps[i] == data[j]) + { + gnutls_compression_method_t method = + _gnutls_compression_get_id (comps[i]); - _gnutls_epoch_set_compression (session, EPOCH_NEXT, method); - session->security_parameters.compression_method = method; + _gnutls_epoch_set_compression (session, EPOCH_NEXT, method); + session->security_parameters.compression_method = method; - _gnutls_handshake_log - ("HSK[%p]: Selected Compression Method: %s\n", session, - gnutls_compression_get_name (method)); + _gnutls_handshake_log + ("HSK[%p]: Selected Compression Method: %s\n", session, + gnutls_compression_get_name (method)); + return 0; + } + } + } + } + else + { + for (i = 0; i < x; i++) + { + for (j = 0; j < datalen; j++) + { + if (comps[i] == data[j]) + { + gnutls_compression_method_t method = + _gnutls_compression_get_id (comps[i]); + _gnutls_epoch_set_compression (session, EPOCH_NEXT, method); + session->security_parameters.compression_method = method; - return 0; + _gnutls_handshake_log + ("HSK[%p]: Selected Compression Method: %s\n", session, + gnutls_compression_get_name (method)); + return 0; + } } } }