From: Lars Ingebrigtsen <larsi@gnus.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: j_l_domenech@yahoo.com, 22789@debbugs.gnu.org
Subject: bug#22789: 25.1.50; In last master build https connections stop working
Date: Fri, 26 Feb 2016 12:59:39 +1030 [thread overview]
Message-ID: <87k2lsnqzw.fsf@gnus.org> (raw)
In-Reply-To: <83k2lsg2sx.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 25 Feb 2016 18:41:50 +0200")
Eli Zaretskii <eliz@gnu.org> writes:
> It stays "connect" forever. But "netstat" doesn't show any
> connections to that server, AFAICT. I think the connection simply
> doesn't begin.
Hm... when you mentioned that the Windows GnuTLS functions used our own
functions for the actual pull/push, I thought that perhaps the problem
was there (and was about to suggest the patch below), but this must mean
that the socket isn't even created.
`make-network-socket' ends with
#ifdef HAVE_GETADDRINFO_A
/* If we're doing async address resolution, the list of addresses
here will be nil, so we postpone connecting to the server. */
if (!p->is_server && NILP (ip_addresses))
{
p->dns_request = dns_request;
p->status = Qconnect;
}
else
{
connect_network_socket (proc, ip_addresses);
}
#else /* HAVE_GETADDRINFO_A */
connect_network_socket (proc, ip_addresses);
#endif
so that should happen unconditionally on Windows.
Let's see...
Oh! This code in connect_network_socket looks suspect, perhaps. If it
fails, then the socket will never actually be created... hm... but it
may be caught later... and it doesn't explain why non-blocking non-TLS
sockets still work... so it can't be that...
#ifdef NON_BLOCKING_CONNECT
if (p->is_non_blocking_client)
{
ret = fcntl (s, F_SETFL, O_NONBLOCK);
if (ret < 0)
{
xerrno = errno;
emacs_close (s);
s = -1;
continue;
}
}
#endif
So perhaps it's in the TLS code anyway. Could you try the following
code? It'll make TLS negotiation blocking on WINDOWSNT again.
> Btw, one other difference of the Windows build, this time wrt GnuTLS,
> is that on Windows we instruct GnuTLS to use our own pull and push
> functions, see gnutls.c around line 450. The functions themselves are
> defined in w32.c, at the end.
diff --git a/src/gnutls.c b/src/gnutls.c
index d1b34c5..00d0e56 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -410,12 +410,17 @@ gnutls_try_handshake (struct Lisp_Process *proc)
QUIT;
}
while (ret < 0 && gnutls_error_is_fatal (ret) == 0
- && ! proc->is_non_blocking_client);
+#ifndef WINDOWSNT
+ && ! proc->is_non_blocking_client
+#endif
+ );
proc->gnutls_initstage = GNUTLS_STAGE_HANDSHAKE_TRIED;
+#ifndef WINDOWSNT
if (proc->is_non_blocking_client)
proc->gnutls_p = true;
+#endif
if (ret == GNUTLS_E_SUCCESS)
{
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
next prev parent reply other threads:[~2016-02-26 2:29 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-24 10:26 bug#22789: 25.1.50; In last master build https connections stop working José L. Doménech
2016-02-24 14:00 ` Lars Ingebrigtsen
2016-02-24 16:09 ` José L. Doménech
2016-02-24 18:06 ` Eli Zaretskii
2016-02-24 23:48 ` Lars Ingebrigtsen
2016-02-25 0:02 ` Lars Ingebrigtsen
2016-02-25 1:09 ` Lars Ingebrigtsen
2016-02-25 16:41 ` Eli Zaretskii
2016-02-26 2:29 ` Lars Ingebrigtsen [this message]
2016-02-26 9:36 ` Eli Zaretskii
2016-02-27 2:30 ` Lars Ingebrigtsen
2016-02-27 2:43 ` John Wiegley
2016-02-27 3:50 ` Lars Ingebrigtsen
2016-02-27 8:14 ` Eli Zaretskii
2016-02-27 3:49 ` Lars Ingebrigtsen
2016-02-27 8:10 ` Eli Zaretskii
2016-02-27 8:13 ` Eli Zaretskii
2016-02-27 18:05 ` Alain Schneble
2016-02-27 22:38 ` Lars Ingebrigtsen
2016-02-27 23:06 ` Alain Schneble
2016-02-27 23:49 ` Alain Schneble
2016-02-28 3:31 ` Lars Ingebrigtsen
2016-02-28 9:58 ` Alain Schneble
2016-02-28 16:53 ` Eli Zaretskii
2016-02-29 2:37 ` Lars Ingebrigtsen
2016-02-28 3:43 ` Eli Zaretskii
2016-02-28 9:48 ` Alain Schneble
2016-02-28 17:00 ` Eli Zaretskii
2016-02-29 2:49 ` Lars Ingebrigtsen
2016-02-29 3:43 ` Eli Zaretskii
2016-02-29 4:38 ` Lars Ingebrigtsen
2016-02-29 9:55 ` Alain Schneble
2016-02-29 10:03 ` Lars Ingebrigtsen
2016-02-29 17:57 ` Alain Schneble
2016-02-29 18:45 ` Eli Zaretskii
2016-02-29 21:22 ` Lars Ingebrigtsen
2016-03-01 3:35 ` Eli Zaretskii
2016-02-29 23:13 ` Alain Schneble
2016-03-01 0:41 ` Lars Ingebrigtsen
2016-03-01 3:41 ` Eli Zaretskii
2016-03-01 4:29 ` Lars Ingebrigtsen
2016-03-01 4:30 ` Lars Ingebrigtsen
2016-03-01 9:00 ` Andreas Schwab
2016-03-01 14:12 ` Lars Ingebrigtsen
2016-03-01 14:25 ` Alain Schneble
2016-03-01 14:43 ` Lars Ingebrigtsen
2016-03-01 15:59 ` Eli Zaretskii
2016-03-01 16:19 ` Alain Schneble
2016-03-01 17:00 ` Eli Zaretskii
2016-03-01 17:09 ` Alain Schneble
2016-03-01 17:22 ` Eli Zaretskii
2016-03-01 17:55 ` Alain Schneble
2016-03-01 18:13 ` Eli Zaretskii
2016-03-01 16:33 ` Andreas Schwab
2016-03-01 15:53 ` Eli Zaretskii
2016-03-01 15:36 ` Alain Schneble
2016-03-01 16:05 ` Eli Zaretskii
2016-03-01 16:25 ` Alain Schneble
2016-03-04 8:56 ` Eli Zaretskii
2016-03-04 16:55 ` Alain Schneble
2016-03-04 21:36 ` Alain Schneble
2016-03-04 22:33 ` Alain Schneble
2016-03-05 8:23 ` Eli Zaretskii
2016-03-05 18:27 ` Alain Schneble
2016-03-05 19:21 ` Eli Zaretskii
2016-03-06 22:45 ` Alain Schneble
2016-03-06 23:24 ` Alain Schneble
2016-03-07 8:49 ` Alain Schneble
2016-03-07 16:08 ` Eli Zaretskii
2016-03-07 17:20 ` Alain Schneble
2016-03-07 17:33 ` Eli Zaretskii
2016-03-07 18:03 ` Alain Schneble
2016-03-07 18:10 ` Eli Zaretskii
2016-03-07 18:26 ` Alain Schneble
2016-03-07 16:07 ` Eli Zaretskii
2016-03-07 16:47 ` Alain Schneble
2016-03-07 22:21 ` Alain Schneble
2016-03-08 16:40 ` Eli Zaretskii
2016-03-08 16:43 ` Alain Schneble
2016-03-10 14:45 ` Eli Zaretskii
2016-03-10 14:59 ` Alain Schneble
2016-03-06 9:31 ` Lars Magne Ingebrigtsen
2016-03-06 15:24 ` Eli Zaretskii
2016-03-05 8:46 ` Lars Magne Ingebrigtsen
2016-03-05 18:32 ` Alain Schneble
2016-02-29 21:18 ` Lars Ingebrigtsen
2016-02-29 23:20 ` Alain Schneble
2016-03-01 3:43 ` Eli Zaretskii
2016-03-01 5:17 ` Lars Ingebrigtsen
2016-03-01 15:46 ` Eli Zaretskii
2016-03-02 18:03 ` Lars Ingebrigtsen
2016-03-02 19:07 ` Alain Schneble
2016-03-02 19:15 ` Lars Ingebrigtsen
2016-03-02 19:38 ` Alain Schneble
2016-03-02 20:46 ` Alain Schneble
2016-03-02 22:02 ` Alain Schneble
2016-03-02 22:22 ` Lars Ingebrigtsen
2016-03-02 22:38 ` Alain Schneble
2016-03-03 0:07 ` Alain Schneble
2016-03-03 5:32 ` Lars Ingebrigtsen
2016-03-03 9:03 ` Alain Schneble
2016-03-02 19:43 ` Eli Zaretskii
2016-03-03 5:23 ` Lars Ingebrigtsen
2016-03-04 8:51 ` Eli Zaretskii
2016-03-04 11:33 ` Lars Ingebrigtsen
2016-03-04 14:48 ` Eli Zaretskii
2016-03-05 12:26 ` Lars Magne Ingebrigtsen
2016-03-05 13:24 ` Eli Zaretskii
2016-03-06 9:33 ` Lars Magne Ingebrigtsen
2016-03-06 15:26 ` Eli Zaretskii
2016-03-06 18:33 ` Lars Magne Ingebrigtsen
2016-03-06 18:41 ` Eli Zaretskii
2016-03-04 11:37 ` Lars Ingebrigtsen
2016-03-04 11:40 ` Lars Ingebrigtsen
2016-03-04 15:41 ` Eli Zaretskii
2016-03-04 15:43 ` Lars Ingebrigtsen
2016-03-04 16:12 ` Eli Zaretskii
2016-03-04 15:40 ` Eli Zaretskii
2016-03-01 15:43 ` Alain Schneble
2016-03-01 16:07 ` Eli Zaretskii
2016-03-01 16:26 ` Alain Schneble
2016-02-28 16:47 ` Eli Zaretskii
2016-02-25 3:46 ` Eli Zaretskii
2016-02-25 5:00 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k2lsnqzw.fsf@gnus.org \
--to=larsi@gnus.org \
--cc=22789@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=j_l_domenech@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.