unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#36660: 27.0.50; :nowait fails when failing over when using TLS
@ 2019-07-15 10:57 Robert Pluim
  2019-07-15 11:10 ` Robert Pluim
  0 siblings, 1 reply; 5+ messages in thread
From: Robert Pluim @ 2019-07-15 10:57 UTC (permalink / raw)
  To: 36660


The long version of this is at

<https://lists.gnu.org/archive/html/emacs-devel/2019-02/msg00588.html>

Short version: when opening a network connection using :nowait t, and
using TLS, failing over from one IP address to a second one fails,
because by the time Emacs tries to make the second connection, itʼs
deleted the TLS boot parameters it needs, so attempts to make a TCP
connection but using the original TLS port number.

Patch to follow once I get the bug number.

In GNU Emacs 27.0.50 (build 12, x86_64-apple-darwin18.6.0, NS appkit-1671.50 Version 10.14.5 (Build 18F132))
 of 2019-07-04 built on rpluim-mac
Repository revision: 9c2b1935a316a3d628255f83b26c6605189d2f62
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1671
System Description:  Mac OS X 10.14.5





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#36660: 27.0.50; :nowait fails when failing over when using TLS
  2019-07-15 10:57 bug#36660: 27.0.50; :nowait fails when failing over when using TLS Robert Pluim
@ 2019-07-15 11:10 ` Robert Pluim
  2019-07-15 11:31   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Robert Pluim @ 2019-07-15 11:10 UTC (permalink / raw)
  To: 36660

[-- Attachment #1: Type: text/plain, Size: 40 bytes --]


O frabjous day! What a bug number :-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Don-t-delete-GnuTLS-boot-parameters-too-early.patch --]
[-- Type: text/x-patch, Size: 1386 bytes --]

From cfd2d8cbadc3c2b744e40c47cdce4344da1eef77 Mon Sep 17 00:00:00 2001
From: Robert Pluim <rpluim@gmail.com>
Date: Mon, 15 Jul 2019 13:04:59 +0200
Subject: [PATCH] Don't delete GnuTLS boot parameters too early
To: emacs-devel@gnu.org

When falling back from one IP address to another for the same host, we
need to keep the TLS boot parameters around until we've actually
managed to connect, otherwise the fallback connection(s) will use TCP
rather than TLS.  (Bug#36660)

* src/process.c (connect_network_socket): Don't delete the GnuTLS
boot parameters until after we've managed to connect at the IP
level.
---
 src/process.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/process.c b/src/process.c
index cab390c10c..23c9be2b7b 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3682,11 +3682,14 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos,
       Lisp_Object boot, params = p->gnutls_boot_parameters;
 
       boot = Fgnutls_boot (proc, XCAR (params), XCDR (params));
-      p->gnutls_boot_parameters = Qnil;
 
       if (p->gnutls_initstage == GNUTLS_STAGE_READY)
+        {
 	/* Run sentinels, etc. */
+          p->gnutls_boot_parameters = Qnil;
+
 	finish_after_tls_connection (proc);
+        }
       else if (p->gnutls_initstage != GNUTLS_STAGE_HANDSHAKE_TRIED)
 	{
 	  deactivate_process (proc);
-- 
2.21.0.419.gffac537e6c


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#36660: 27.0.50; :nowait fails when failing over when using TLS
  2019-07-15 11:10 ` Robert Pluim
@ 2019-07-15 11:31   ` Lars Ingebrigtsen
  2019-07-15 14:39     ` Robert Pluim
  0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2019-07-15 11:31 UTC (permalink / raw)
  To: 36660

Robert Pluim <rpluim@gmail.com> writes:

> O frabjous day! What a bug number :-)

Positively devilish.

>        boot = Fgnutls_boot (proc, XCAR (params), XCDR (params));
> -      p->gnutls_boot_parameters = Qnil;
>
>        if (p->gnutls_initstage == GNUTLS_STAGE_READY)
> +        {
>  	/* Run sentinels, etc. */
> +          p->gnutls_boot_parameters = Qnil;
> +
>  	finish_after_tls_connection (proc);
> +        }

Makes perfect sense; I've now applied it to the trunk.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#36660: 27.0.50; :nowait fails when failing over when using TLS
  2019-07-15 11:31   ` Lars Ingebrigtsen
@ 2019-07-15 14:39     ` Robert Pluim
  2019-07-15 14:46       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Robert Pluim @ 2019-07-15 14:39 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 36660

>>>>> On Mon, 15 Jul 2019 13:31:14 +0200, Lars Ingebrigtsen <larsi@gnus.org> said:
    Lars> Makes perfect sense; I've now applied it to the trunk.

That was unexpectedly quick, but welcome (although you trimmed my
explanation of the cause of the bug when you committed the patch. Did
I offend 'git apply' somewhere?).

Thanks

Robert





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#36660: 27.0.50; :nowait fails when failing over when using TLS
  2019-07-15 14:39     ` Robert Pluim
@ 2019-07-15 14:46       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2019-07-15 14:46 UTC (permalink / raw)
  To: 36660

Robert Pluim <rpluim@gmail.com> writes:

> That was unexpectedly quick, but welcome (although you trimmed my
> explanation of the cause of the bug when you committed the patch. Did
> I offend 'git apply' somewhere?).

Oh, sorry.  I didn't use git apply; I used `M-m' in debbugs-gnu.  Looks
like it doesn't preserve all of the text before the patch -- needs some
tweaks.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-07-15 14:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-15 10:57 bug#36660: 27.0.50; :nowait fails when failing over when using TLS Robert Pluim
2019-07-15 11:10 ` Robert Pluim
2019-07-15 11:31   ` Lars Ingebrigtsen
2019-07-15 14:39     ` Robert Pluim
2019-07-15 14:46       ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).