From a94ddcacc6b646a9746152e660640c8ce93a7f4d Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Tue, 7 Jul 2009 12:49:37 -0300 Subject: [PATCH] Split SSL data initialization into GNUTLS session and others. This will allow us to use another session initialization function later and have server-side SSL support. --- hcconn_ssl.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/hcconn_ssl.c b/hcconn_ssl.c index d4fa465..29838df 100644 --- a/hcconn_ssl.c +++ b/hcconn_ssl.c @@ -33,18 +33,24 @@ struct ssl_data gpointer lowconn; }; -static struct ssl_data * -ssl_data_new (void) +static void +ssl_client_session_new (gnutls_session_t *session) { - struct ssl_data *ssl; int kx_prio[] = {GNUTLS_KX_RSA, 0}; gnutls_certificate_credentials cred; gnutls_certificate_allocate_credentials (&cred); + gnutls_init (session, GNUTLS_CLIENT); + gnutls_set_default_priority (*session); + gnutls_kx_set_priority (*session, kx_prio); + gnutls_credentials_set (*session, GNUTLS_CRD_CERTIFICATE, cred); +} + +static struct ssl_data * +ssl_data_new (void) +{ + struct ssl_data *ssl; ssl = g_slice_new (struct ssl_data); - gnutls_init (&ssl->session, GNUTLS_CLIENT); - gnutls_set_default_priority (ssl->session); - gnutls_kx_set_priority (ssl->session, kx_prio); - gnutls_credentials_set (ssl->session, GNUTLS_CRD_CERTIFICATE, cred); + ssl_client_session_new (&ssl->session); ssl->buffer = g_string_sized_new (4096); ssl->handshaking = FALSE; return ssl; -- 2.20.1