Enable compression in GNUTLS. (Patch by Robert McQueen)
authorSenko Rasic <senko.rasic@collabora.co.uk>
Sun, 09 Dec 2007 14:26:44 +0100
changeset 319 2a892980f78b
parent 318 010070018c04
child 320 02b814ccc535
Enable compression in GNUTLS. (Patch by Robert McQueen)
loudmouth/lm-ssl-gnutls.c
--- a/loudmouth/lm-ssl-gnutls.c	Sun Dec 09 14:17:40 2007 +0100
+++ b/loudmouth/lm-ssl-gnutls.c	Sun Dec 09 14:26:44 2007 +0100
@@ -23,6 +23,7 @@
 #include <string.h>
 #include <glib.h>
 
+#include "lm-debug.h"
 #include "lm-error.h"
 #include "lm-ssl-base.h"
 #include "lm-ssl-internals.h"
@@ -195,13 +196,17 @@
 {
 	int ret;
 	gboolean auth_ok = TRUE;
-	const int cert_type_priority[2] =
-	{ GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP };
+	const int cert_type_priority[] =
+		{ GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
+	const int compression_priority[] =
+		{ GNUTLS_COMP_DEFLATE, GNUTLS_COMP_NULL, 0 };
 
 	gnutls_init (&ssl->gnutls_session, GNUTLS_CLIENT);
 	gnutls_set_default_priority (ssl->gnutls_session);
 	gnutls_certificate_type_set_priority (ssl->gnutls_session,
 					      cert_type_priority);
+	gnutls_compression_set_priority (ssl->gnutls_session,
+					 compression_priority);
 	gnutls_credentials_set (ssl->gnutls_session,
 				GNUTLS_CRD_CERTIFICATE,
 				ssl->gnutls_xcred);
@@ -233,6 +238,10 @@
 		return FALSE;
 	}
 
+	lm_verbose ("GNUTLS negotiated compression: %s",
+		    gnutls_compression_get_name (gnutls_compression_get
+			(ssl->gnutls_session)));
+
 	ssl->started = TRUE;
 
 	return TRUE;