From: Thadeu Lima de Souza Cascardo Date: Tue, 7 Jul 2009 15:49:37 +0000 (-0300) Subject: Split SSL data initialization into GNUTLS session and others. X-Git-Tag: v0.1.3~35 X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Frnetproxy.git;a=commitdiff_plain;h=a94ddcacc6b646a9746152e660640c8ce93a7f4d 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. --- 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;