Subject: Re: bug#38602: 26.3; gnutls-negotiate fails to handle :verify-error being set to t

From: Alexis <[email-masked]>
Date: Thu, 26 Dec 2019 15:19:45 +1100

Robert Pluim <[email-masked]> writes:

> How about this? Producing a list (:hostname t) is not what you 
> want,
> since that removes the 'check everything' feature of specifying 
> just
> 't'.
>
> diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el
> index 9b13adaefe..14368bc298 100644
> --- a/lisp/net/gnutls.el
> +++ b/lisp/net/gnutls.el
> @@ -345,8 +345,11 @@ gnutls-boot-parameters
>                              (t nil))))
>           (min-prime-bits (or min-prime-bits 
>           gnutls-min-prime-bits)))
>  
> -    (when verify-hostname-error
> -      (push :hostname verify-error))
> +    ;; Only add :hostname if `verify-error' is not t, since t
> +    ;; means "include :hostname" Bug#38602.
> +    (and verify-hostname-error
> +         (not (eq verify-error t))
> +         (push :hostname verify-error))
>  
>      `(:priority ,priority-string
>                  :hostname ,hostname

Thank you for your prompt response - sorry to have taken so long 
to get back to you.

Unfortunately, this diff didn't work for me - it results in the 
error:

    STARTTLS negotation failed: GnuTLS error: #<process jabber>, 
    nil

Alexis.