[PATCH] Use "new" gnutls types

Jeremy Allison jra at samba.org
Tue May 9 21:09:46 UTC 2017


On Tue, May 09, 2017 at 01:24:15PM +0200, Andreas Schneider via samba-technical wrote:
> 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.

LGTM - pushed !

> 
> 
> 	Andreas
> 
> -- 
> Andreas Schneider                   GPG-ID: CC014E3D
> Samba Team                             asn at samba.org
> www.samba.org

> 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