talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 48253881c8e9ac7db411feff6e2cb36dea645180
parent 08ec3ee0dfc522d43d585a1e83f10322a821d4f7
Author: Colin Leroy <colin@colino.net>
Date:   Tue, 27 Nov 2012 10:18:56 +0000

2012-11-27 [colin]	3.9.0cvs24

	* src/common/ssl.c
		Fix bug #2826, "replace deprecated gnutls function"
		Patch by Christian Hesse

Diffstat:
MChangeLog | 6++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/common/ssl.c | 18+++++++++++++++---
4 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,9 @@ +2012-11-27 [colin] 3.9.0cvs24 + + * src/common/ssl.c + Fix bug #2826, "replace deprecated gnutls function" + Patch by Christian Hesse + 2012-11-27 [colin] 3.9.0cvs23 * src/gtk/manage_window.c diff --git a/PATCHSETS b/PATCHSETS @@ -4521,3 +4521,4 @@ ( cvs diff -u -r 1.1.2.13 -r 1.1.2.14 doc/man/claws-mail.1; cvs diff -u -r 1.115.2.263 -r 1.115.2.264 src/main.c; cvs diff -u -r 1.17.2.65 -r 1.17.2.66 src/send_message.c; cvs diff -u -r 1.1.4.12 -r 1.1.4.13 src/send_message.h; ) > 3.9.0cvs21.patchset ( cvs diff -u -r 1.274.2.356 -r 1.274.2.357 src/mainwindow.c; cvs diff -u -r 1.204.2.213 -r 1.204.2.214 src/prefs_common.c; cvs diff -u -r 1.103.2.142 -r 1.103.2.143 src/prefs_common.h; ) > 3.9.0cvs22.patchset ( cvs diff -u -r 1.1.4.12 -r 1.1.4.13 src/gtk/manage_window.c; ) > 3.9.0cvs23.patchset +( cvs diff -u -r 1.9.2.58 -r 1.9.2.59 src/common/ssl.c; ) > 3.9.0cvs24.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=9 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=23 +EXTRA_VERSION=24 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/common/ssl.c b/src/common/ssl.c @@ -57,10 +57,17 @@ typedef struct _thread_data { } thread_data; #endif +#if GNUTLS_VERSION_NUMBER <= 0x020c00 static int gnutls_client_cert_cb(gnutls_session_t session, const gnutls_datum_t *req_ca_rdn, int nreqs, const gnutls_pk_algorithm_t *sign_algos, int sign_algos_length, gnutls_retr_st *st) +#else +static int gnutls_cert_cb(gnutls_session_t session, + const gnutls_datum_t *req_ca_rdn, int nreqs, + const gnutls_pk_algorithm_t *sign_algos, + int sign_algos_length, gnutls_retr2_st *st) +#endif { SSLClientCertHookData hookdata; SockInfo *sockinfo = (SockInfo *)gnutls_session_get_ptr(session); @@ -91,7 +98,11 @@ static int gnutls_client_cert_cb(gnutls_session_t session, if (type == GNUTLS_CRT_X509 && sockinfo->client_crt && sockinfo->client_key) { st->ncerts = 1; +#if GNUTLS_VERSION_NUMBER <= 0x020c00 st->type = type; +#else + st->key_type = type; +#endif st->cert.x509 = &(sockinfo->client_crt); st->key.x509 = sockinfo->client_key; st->deinit_all = 0; @@ -287,10 +298,11 @@ gboolean ssl_init_socket_with_method(SockInfo *sockinfo, SSLMethod method) gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t) GINT_TO_POINTER(sockinfo->sock)); gnutls_session_set_ptr(session, sockinfo); - /* TODO: gnutls_certificate_client_set_retrieve_function() is deprecated and should be replaced with - * gnutls_certificate_set_retrieve_function() which was introduced in gnutls 2.12 in March 2011 - * getting this right with defines is not easy, so how long do we need compatibility to gntls <= 2.10? */ +#if GNUTLS_VERSION_NUMBER <= 0x020c00 gnutls_certificate_client_set_retrieve_function(xcred, gnutls_client_cert_cb); +#else + gnutls_certificate_set_retrieve_function(xcred, gnutls_cert_cb); +#endif gnutls_dh_set_prime_bits(session, 512);