[PATCH] Use "new" gnutls types

Andreas Schneider asn at samba.org
Tue May 9 11:24:15 UTC 2017


Hi,

the attached patch uses the "new" GnuTLS types which have been introduced in 
2004 (version 1.0.20). I think it is safe to use them with GnuTLS 3.x now :)

This removed a bunch of deprecation warnings ...


Review and push appreciated.


Thanks,


	Andreas

-- 
Andreas Schneider                   GPG-ID: CC014E3D
Samba Team                             asn at samba.org
www.samba.org
-------------- next part --------------
>From c77486d8ee4f2243a5c39a8628ec2887d823ba1c Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn at samba.org>
Date: Tue, 9 May 2017 13:17:13 +0200
Subject: [PATCH] s4:tls: Do not use deprecated GnuTLS types

Those have been deprecated with GnuTLS 1.0.20 in 2004. I think it is
safe to use them now ;)

Signed-off-by: Andreas Schneider <asn at samba.org>
---
 source4/lib/tls/tls.c         | 14 +++++++-------
 source4/lib/tls/tls_tstream.c | 16 +++++++++-------
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/source4/lib/tls/tls.c b/source4/lib/tls/tls.c
index ad8bbd444a4..ac4df221999 100644
--- a/source4/lib/tls/tls.c
+++ b/source4/lib/tls/tls.c
@@ -39,8 +39,8 @@ typedef gnutls_datum gnutls_datum_t;
 
 /* hold persistent tls data */
 struct tls_params {
-	gnutls_certificate_credentials x509_cred;
-	gnutls_dh_params dh_params;
+	gnutls_certificate_credentials_t x509_cred;
+	gnutls_dh_params_t dh_params;
 	bool tls_enabled;
 	const char *tls_priority;
 };
@@ -52,14 +52,14 @@ struct tls_context {
 	struct tevent_fd *fde;
 	bool tls_enabled;
 #if ENABLE_GNUTLS
-	gnutls_session session;
+	gnutls_session_t session;
 	bool done_handshake;
 	bool have_first_byte;
 	uint8_t first_byte;
 	bool tls_detect;
 	const char *plain_chars;
 	bool output_pending;
-	gnutls_certificate_credentials xcred;
+	gnutls_certificate_credentials_t xcred;
 	bool interrupted;
 #endif
 };
@@ -111,7 +111,7 @@ static NTSTATUS tls_socket_init(struct socket_context *sock)
 /*
   callback for reading from a socket
 */
-static ssize_t tls_pull(gnutls_transport_ptr ptr, void *buf, size_t size)
+static ssize_t tls_pull(gnutls_transport_ptr_t ptr, void *buf, size_t size)
 {
 	struct tls_context *tls = talloc_get_type(ptr, struct tls_context);
 	NTSTATUS status;
@@ -150,7 +150,7 @@ static ssize_t tls_pull(gnutls_transport_ptr ptr, void *buf, size_t size)
 /*
   callback for writing to a socket
 */
-static ssize_t tls_push(gnutls_transport_ptr ptr, const void *buf, size_t size)
+static ssize_t tls_push(gnutls_transport_ptr_t ptr, const void *buf, size_t size)
 {
 	struct tls_context *tls = talloc_get_type(ptr, struct tls_context);
 	NTSTATUS status;
@@ -545,7 +545,7 @@ struct socket_context *tls_init_server(struct tls_params *params,
 					params->x509_cred));
 	gnutls_certificate_server_set_request(tls->session, GNUTLS_CERT_REQUEST);
 	gnutls_dh_set_prime_bits(tls->session, DH_BITS);
-	gnutls_transport_set_ptr(tls->session, (gnutls_transport_ptr)tls);
+	gnutls_transport_set_ptr(tls->session, (gnutls_transport_ptr_t)tls);
 	gnutls_transport_set_pull_function(tls->session, (gnutls_pull_func)tls_pull);
 	gnutls_transport_set_push_function(tls->session, (gnutls_push_func)tls_push);
 #if GNUTLS_VERSION_MAJOR < 3
diff --git a/source4/lib/tls/tls_tstream.c b/source4/lib/tls/tls_tstream.c
index 28fe3328b12..94689718d63 100644
--- a/source4/lib/tls/tls_tstream.c
+++ b/source4/lib/tls/tls_tstream.c
@@ -85,7 +85,7 @@ struct tstream_tls {
 	int error;
 
 #if ENABLE_GNUTLS
-	gnutls_session tls_session;
+	gnutls_session_t tls_session;
 #endif /* ENABLE_GNUTLS */
 
 	enum tls_verify_peer_state verify_peer;
@@ -190,7 +190,7 @@ static void tstream_tls_push_trigger_write(struct tevent_context *ev,
 					   struct tevent_immediate *im,
 					   void *private_data);
 
-static ssize_t tstream_tls_push_function(gnutls_transport_ptr ptr,
+static ssize_t tstream_tls_push_function(gnutls_transport_ptr_t ptr,
 					 const void *buf, size_t size)
 {
 	struct tstream_context *stream =
@@ -329,7 +329,7 @@ static void tstream_tls_push_done(struct tevent_req *subreq)
 
 static void tstream_tls_pull_done(struct tevent_req *subreq);
 
-static ssize_t tstream_tls_pull_function(gnutls_transport_ptr ptr,
+static ssize_t tstream_tls_pull_function(gnutls_transport_ptr_t ptr,
 					 void *buf, size_t size)
 {
 	struct tstream_context *stream =
@@ -911,8 +911,8 @@ static const struct tstream_context_ops tstream_tls_ops = {
 
 struct tstream_tls_params {
 #if ENABLE_GNUTLS
-	gnutls_certificate_credentials x509_cred;
-	gnutls_dh_params dh_params;
+	gnutls_certificate_credentials_t x509_cred;
+	gnutls_dh_params_t dh_params;
 	const char *tls_priority;
 #endif /* ENABLE_GNUTLS */
 	bool tls_enabled;
@@ -1115,7 +1115,8 @@ struct tevent_req *_tstream_tls_connect_send(TALLOC_CTX *mem_ctx,
 		return tevent_req_post(req, ev);
 	}
 
-	gnutls_transport_set_ptr(tlss->tls_session, (gnutls_transport_ptr)state->tls_stream);
+	gnutls_transport_set_ptr(tlss->tls_session,
+				 (gnutls_transport_ptr_t)state->tls_stream);
 	gnutls_transport_set_pull_function(tlss->tls_session,
 					   (gnutls_pull_func)tstream_tls_pull_function);
 	gnutls_transport_set_push_function(tlss->tls_session,
@@ -1390,7 +1391,8 @@ struct tevent_req *_tstream_tls_accept_send(TALLOC_CTX *mem_ctx,
 					      GNUTLS_CERT_REQUEST);
 	gnutls_dh_set_prime_bits(tlss->tls_session, DH_BITS);
 
-	gnutls_transport_set_ptr(tlss->tls_session, (gnutls_transport_ptr)state->tls_stream);
+	gnutls_transport_set_ptr(tlss->tls_session,
+				 (gnutls_transport_ptr_t)state->tls_stream);
 	gnutls_transport_set_pull_function(tlss->tls_session,
 					   (gnutls_pull_func)tstream_tls_pull_function);
 	gnutls_transport_set_push_function(tlss->tls_session,
-- 
2.12.2



More information about the samba-technical mailing list