From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Resent-From: Jun Hao Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Jul 2016 14:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 23982@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.14685058617391 (code B ref -1); Thu, 14 Jul 2016 14:18:01 +0000 Received: (at submit) by debbugs.gnu.org; 14 Jul 2016 14:17:41 +0000 Received: from localhost ([127.0.0.1]:51522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNhSO-0001v9-TE for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45545) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNhSL-0001us-Nv for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNhSF-0000dV-Kv for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53351) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNhSF-0000dP-Hk for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:31 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36499) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNhSC-0001tU-Vk for bug-gnu-emacs@gnu.org; Thu, 14 Jul 2016 10:17:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNhS7-0000cO-Jd for bug-gnu-emacs@gnu.org; Thu, 14 Jul 2016 10:17:27 -0400 Received: from omr-a017e.mx.aol.com ([204.29.186.68]:51939) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNhS7-0000cE-Ee for bug-gnu-emacs@gnu.org; Thu, 14 Jul 2016 10:17:23 -0400 Received: from mtaout-aan02.mx.aol.com (mtaout-aan02.mx.aol.com [172.27.19.78]) by omr-a017e.mx.aol.com (Outbound Mail Relay) with ESMTP id 5422138000B9 for ; Thu, 14 Jul 2016 10:17:22 -0400 (EDT) Received: from bogon (unknown [61.51.195.178]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mtaout-aan02.mx.aol.com (MUA/Third Party Client Interface) with ESMTPSA id DCB4238000092 for ; Thu, 14 Jul 2016 10:17:19 -0400 (EDT) User-agent: mu4e 0.9.17; emacs 25.1.50.2 From: Jun Hao Date: Thu, 14 Jul 2016 22:17:13 +0800 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" x-aol-global-disposition: G X-AOL-VSS-INFO: 5800.7501/110832 X-AOL-VSS-CODE: clean DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mx.aol.com; s=20150623; t=1468505842; bh=46HS8I9JIlQpjVWgTE9eZjHJGPN4iuSAyYB8Ckcidcg=; h=From:To:Subject:Message-ID:Date:MIME-Version:Content-Type; b=WQSbB4OOSxiOR3kAa6OrQCf9094X/o7M7zz7lRqjCvqcZ5fRN6cQb0O6gOWY0jq+/ eO2RzlfpQsA14d2tuj4ZErT3GHF5PLCqpQrl0O8VFAqlbrg7EeZ+vNKwO3tbHsQSGr O6IrfB+rfdrxPNqtGdYL4909qm5Kq1UvYY14zJPI= x-aol-sid: 3039ac1b134e57879eef5c8a X-AOL-IP: 61.51.195.178 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --=-=-= Content-Type: text/plain Hi, For latest master branch, when try to use gnutls with async connection, the handshake will return fatal error if socket is in ENOTCONN or EINPROGRESS since gnutls treat these errors as fatal during push/pull and gives up. The later retry will fail because gnutls will mark the session invalid. This patch is asking gnutls to treat them as EAGAIN which is non-fatal. I only tested with OSX. Please see if you can reproduce it on Windows or Linux and if this patch works for them too. To reproduce run: emacs -Q --eval "(erc-tls :server \"irc.freenode.net\" :port 6697 :nick \"test\")" Current master branch will gave up connecting. -- Thanks - Jun --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Treat-errno-EINPROGRESS-and-ENOTCONN-as-EAGAIN-for-a.patch >From 8c69cab078d4c51d5c8f76f2aacb7bb8dd46dd7f Mon Sep 17 00:00:00 2001 From: Jun Hao Date: Thu, 14 Jul 2016 21:47:24 +0800 Subject: [PATCH] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection * src/gnutls.c: (emacs_gnutls_non_blocking_errno): treat errno EINPROGRESS and ENOTCONN as EAGAIN (emacs_gnutls_handshake): set errno function to it when async connection (Fgnutls_boot): set state with GNUTLS_NONBLOCK flag when async connection --- src/gnutls.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/gnutls.c b/src/gnutls.c index 7f05ac4..449a971 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -35,6 +35,10 @@ along with GNU Emacs. If not, see . */ static bool emacs_gnutls_handle_error (gnutls_session_t, int); +#ifndef WINDOWSNT +static int emacs_gnutls_non_blocking_errno(gnutls_transport_ptr_t ptr); +#endif + static bool gnutls_global_initialized; static void gnutls_log_function (int, const char *); @@ -383,6 +387,21 @@ gnutls_log_function2 (int level, const char *string, const char *extra) message ("gnutls.c: [%d] %s %s", level, string, extra); } +#ifndef WINDOWSNT +static int +emacs_gnutls_non_blocking_errno(gnutls_transport_ptr_t ptr) +{ + switch (errno) + { + case EINPROGRESS: + case ENOTCONN: + return EAGAIN; + default: + return errno; + } +} +#endif + int gnutls_try_handshake (struct Lisp_Process *proc) { @@ -460,6 +479,11 @@ emacs_gnutls_handshake (struct Lisp_Process *proc) gnutls_transport_set_ptr2 (state, (void *) (intptr_t) proc->infd, (void *) (intptr_t) proc->outfd); + if (proc->is_non_blocking_client) + /* for non blocking connection + treat EINPROGRESS and ENOTCONN as EAGAIN */ + gnutls_transport_set_errno_function(state, + emacs_gnutls_non_blocking_errno); #endif proc->gnutls_initstage = GNUTLS_STAGE_TRANSPORT_POINTERS_SET; @@ -1596,8 +1620,16 @@ one trustfile (usually a CA bundle). */) /* Call gnutls_init here: */ - GNUTLS_LOG (1, max_log_level, "gnutls_init"); - ret = gnutls_init (&state, GNUTLS_CLIENT); + if (XPROCESS (proc)->is_non_blocking_client) + { + GNUTLS_LOG (1, max_log_level, "gnutls_init with nonblocking"); + ret = gnutls_init(&state, GNUTLS_CLIENT|GNUTLS_NONBLOCK); + } + else + { + GNUTLS_LOG (1, max_log_level, "gnutls_init"); + ret = gnutls_init (&state, GNUTLS_CLIENT); + } XPROCESS (proc)->gnutls_state = state; if (ret < GNUTLS_E_SUCCESS) return gnutls_make_error (ret); -- 2.8.0 --=-=-=-- From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Jul 2016 03:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jun Hao Cc: 23982@debbugs.gnu.org Received: via spool by 23982-submit@debbugs.gnu.org id=B23982.146863998914220 (code B ref 23982); Sat, 16 Jul 2016 03:34:02 +0000 Received: (at 23982) by debbugs.gnu.org; 16 Jul 2016 03:33:09 +0000 Received: from localhost ([127.0.0.1]:53400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOGLl-0003hI-2i for submit@debbugs.gnu.org; Fri, 15 Jul 2016 23:33:09 -0400 Received: from mail-io0-f180.google.com ([209.85.223.180]:35658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOGLi-0003gq-PC for 23982@debbugs.gnu.org; Fri, 15 Jul 2016 23:33:07 -0400 Received: by mail-io0-f180.google.com with SMTP id m101so119853014ioi.2 for <23982@debbugs.gnu.org>; Fri, 15 Jul 2016 20:33:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=whli1bIgj//TQ9bdJHjIYzTrznGnyvGxqWWOe9D91pk=; b=07ikP8MsbG8RjTXl+PrLgdILV481Bv0cFDsTe7s0balg8IW1DUhPunEKpsEyEfcY0c hXY/8JSjNzFhSWFXDBaWo3C+yoxsbzcL856RIKJoBADUJGno/QoPEYlMODe6/wwRNeez N+l5CEbII2TldfRuBmBr3sR/tVEYI5jMmxHw9AgrOv/mxRcHZKW4UQshHEaSDks+rzZs 2hlaKHPOUTAyCL+M67Smsyk/vjj4zl6a5YC2GoY2wyg51l+CAu8QIvM+fXQ8RvPjjMTI oBZeDwP1QAOJHrCeByRitLTVtP9YVeoLwhfLZ6TtmOnlWx8Zik5MqceEJ6d5rxUlYF8t 9OKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=whli1bIgj//TQ9bdJHjIYzTrznGnyvGxqWWOe9D91pk=; b=HkneAeI9xFtewcEN1qXYI+IgAL8/mn2DnM2aP76a33Ak+Brm4uqNkBNL1z0cnz42Ra vTaSRhQRYEqDGRjGDzS5SsGUAdbos8O+8Lmn4PHA8jszZLfaC1PCiHUaAXIzX3FEPX9C TpMAgsueF3y3XxY/sNKQK5PAi+bETeHww7R+nPK1/GLqMsrof8yV3CIv6q7lUNq2e0X8 MF3g414qbLV6R8PcORy+1jI59n2vaNJFHC6jsjHVbjG7sHaWY/TO++mFNjuyA/FsTMfh tiLEEOwPk9fIjXpYgvJCCfm+s6zI60fnbjyFDJDyeo9+BU+kKRsBQ33yWL46wEI2qeQS AntA== X-Gm-Message-State: ALyK8tJs7lMg9dOeYX6TdBx1Cc0aGuZPTe20PuVuFUETsw9OSqMrkTzewPfgtfwmZijgFQ== X-Received: by 10.107.13.82 with SMTP id 79mr27226591ion.97.1468639981011; Fri, 15 Jul 2016 20:33:01 -0700 (PDT) Received: from zony (206-188-64-44.cpe.distributel.net. [206.188.64.44]) by smtp.googlemail.com with ESMTPSA id v21sm358320ita.0.2016.07.15.20.33.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Jul 2016 20:33:00 -0700 (PDT) From: npostavs@users.sourceforge.net References: Date: Fri, 15 Jul 2016 23:33:00 -0400 In-Reply-To: (Jun Hao's message of "Thu, 14 Jul 2016 22:17:13 +0800") Message-ID: <87k2gmdzpv.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Jun Hao writes: > > For latest master branch, when try to use gnutls with async connection, > the handshake will return fatal error if socket is in ENOTCONN or > EINPROGRESS since gnutls treat these errors as fatal during push/pull > and gives up. The later retry will fail because gnutls will mark the > session invalid. > > This patch is asking gnutls to treat them as EAGAIN which is non-fatal. > > I only tested with OSX. Please see if you can reproduce it on Windows or > Linux and if this patch works for them too. > > To reproduce run: > > emacs -Q --eval "(erc-tls :server \"irc.freenode.net\" :port 6697 :nick \"test\")" > > Current master branch will gave up connecting. On both Window and GNU/Linux this successfully connect both with and without the patch, i.e., patch seems not to be needed on non-OSX platforms, but it doesn't seem to hurt either. From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Jul 2016 06:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: npostavs@users.sourceforge.net Cc: jun_hao@aol.com, 23982@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 23982-submit@debbugs.gnu.org id=B23982.146865151532446 (code B ref 23982); Sat, 16 Jul 2016 06:46:01 +0000 Received: (at 23982) by debbugs.gnu.org; 16 Jul 2016 06:45:15 +0000 Received: from localhost ([127.0.0.1]:53444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOJLe-0008RE-SY for submit@debbugs.gnu.org; Sat, 16 Jul 2016 02:45:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56206) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOJLc-0008Pc-N4 for 23982@debbugs.gnu.org; Sat, 16 Jul 2016 02:45:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bOJLW-00012e-Nu for 23982@debbugs.gnu.org; Sat, 16 Jul 2016 02:45:07 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48500) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bOJLW-00011d-Kx; Sat, 16 Jul 2016 02:45:06 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4154 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bOJLU-0004fG-H6; Sat, 16 Jul 2016 02:45:05 -0400 Date: Sat, 16 Jul 2016 09:44:56 +0300 Message-Id: <83twfq5bfb.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87k2gmdzpv.fsf@users.sourceforge.net> (npostavs@users.sourceforge.net) References: <87k2gmdzpv.fsf@users.sourceforge.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.3 (------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > From: npostavs@users.sourceforge.net > Date: Fri, 15 Jul 2016 23:33:00 -0400 > Cc: 23982@debbugs.gnu.org > > > emacs -Q --eval "(erc-tls :server \"irc.freenode.net\" :port 6697 :nick \"test\")" > > > > Current master branch will gave up connecting. > > On both Window and GNU/Linux this successfully connect both with and > without the patch, i.e., patch seems not to be needed on non-OSX > platforms, but it doesn't seem to hurt either. I think this fact should be reflected in some comment to the code changed by the patch. Thanks. From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Resent-From: jun_hao@aol.com Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Jul 2016 15:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: npostavs@users.sourceforge.net, 23982@debbugs.gnu.org X-Debbugs-Original-Cc: 23982@debbugs.gnu.org Received: via spool by 23982-submit@debbugs.gnu.org id=B23982.146868142626085 (code B ref 23982); Sat, 16 Jul 2016 15:04:01 +0000 Received: (at 23982) by debbugs.gnu.org; 16 Jul 2016 15:03:46 +0000 Received: from localhost ([127.0.0.1]:53902 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOR85-0006me-Hp for submit@debbugs.gnu.org; Sat, 16 Jul 2016 11:03:45 -0400 Received: from omr-m017e.mx.aol.com ([204.29.186.19]:32909) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOR83-0006mO-Qx for 23982@debbugs.gnu.org; Sat, 16 Jul 2016 11:03:44 -0400 Received: from mtaout-aao01.mx.aol.com (mtaout-aao01.mx.aol.com [172.27.21.13]) by omr-m017e.mx.aol.com (Outbound Mail Relay) with ESMTP id 9AFCB3800095; Sat, 16 Jul 2016 11:03:38 -0400 (EDT) Received: from [192.168.0.108] (unknown [123.115.76.117]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mtaout-aao01.mx.aol.com (MUA/Third Party Client Interface) with ESMTPSA id 1C74B3800008C; Sat, 16 Jul 2016 11:03:33 -0400 (EDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) From: jun_hao@aol.com X-Mailer: iPhone Mail (13F69) In-Reply-To: <87k2gmdzpv.fsf@users.sourceforge.net> Date: Sat, 16 Jul 2016 23:03:22 +0800 Content-Transfer-Encoding: quoted-printable Message-Id: <047A0010-1FF9-48A4-B8C2-6121C2CED9D5@aol.com> References: <87k2gmdzpv.fsf@users.sourceforge.net> x-aol-global-disposition: G DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mx.aol.com; s=20150623; t=1468681418; bh=dknpohrFgd76vBqMjHh+xeavZic9wp5XPrvhK5iz0D8=; h=From:To:Subject:Message-Id:Date:Mime-Version:Content-Type; b=uEIvCa1T3+1J7mLQq2Q2DgYmeE4wtANZBYmZn0MHwP+ZG3f941HJ8mUhAVVt/i0aj u2MyGcr+yJwQZWtBCuPkdcF6gODzJWIp9h3+UKN6Hmq5ivt/if4ujr/Df9Sft1zbLF I84mYb2+B4EvgF6d1mmnsohkwniNlF+sD36M13Jk= x-aol-sid: 3039ac1b150d578a4cc57eda X-AOL-IP: 123.115.76.117 X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-) > On Jul 16, 2016, at 11:33, npostavs@users.sourceforge.net wrote: >=20 > Jun Hao writes: >>=20 >> For latest master branch, when try to use gnutls with async connection, >> the handshake will return fatal error if socket is in ENOTCONN or >> EINPROGRESS since gnutls treat these errors as fatal during push/pull >> and gives up. The later retry will fail because gnutls will mark the >> session invalid. >>=20 >> This patch is asking gnutls to treat them as EAGAIN which is non-fatal. >>=20 >> I only tested with OSX. Please see if you can reproduce it on Windows or >> Linux and if this patch works for them too. >>=20 >> To reproduce run: >>=20 >> emacs -Q --eval "(erc-tls :server \"irc.freenode.net\" :port 6697 :nick \= "test\")" >>=20 >> Current master branch will gave up connecting. >=20 > On both Window and GNU/Linux this successfully connect both with and > without the patch, i.e., patch seems not to be needed on non-OSX > platforms, but it doesn't seem to hurt either. I think it depends on how fast is connect call succeed. If it's already conn= ected before handshake, it'll be okay. The default method that gnutls uses i= s send(2), which requires the underlying socket to be in connected state. I'= m not sure if it's because of OSX or maybe slow internet connection at this p= oint. Thanks - Jun= From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection References: In-Reply-To: Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 26 Jul 2016 07:36:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jun Hao Cc: Eli Zaretskii , 23982@debbugs.gnu.org, Ted Zlatanov , npostavs@users.sourceforge.net Received: via spool by 23982-submit@debbugs.gnu.org id=B23982.146951851713993 (code B ref 23982); Tue, 26 Jul 2016 07:36:01 +0000 Received: (at 23982) by debbugs.gnu.org; 26 Jul 2016 07:35:17 +0000 Received: from localhost ([127.0.0.1]:37578 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRwtZ-0003dc-H2 for submit@debbugs.gnu.org; Tue, 26 Jul 2016 03:35:17 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:32983) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRwtX-0003dP-Dm for 23982@debbugs.gnu.org; Tue, 26 Jul 2016 03:35:15 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E77D5161169; Tue, 26 Jul 2016 00:35:08 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id UMt3Uu2eqsyD; Tue, 26 Jul 2016 00:35:08 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 435F2161176; Tue, 26 Jul 2016 00:35:08 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 0DVXuxYNUYom; Tue, 26 Jul 2016 00:35:08 -0700 (PDT) Received: from [192.168.0.12] (HSI-KBW-078-043-232-182.hsi4.kabel-badenwuerttemberg.de [78.43.232.182]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 04040161169; Tue, 26 Jul 2016 00:35:06 -0700 (PDT) From: Paul Eggert Message-ID: <14f6e684-04ee-4c65-b673-767fcf1a5ead@cs.ucla.edu> Date: Tue, 26 Jul 2016 09:35:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-) Thanks for the bug report and patch. Two thoughts: * Passing GNUTLS_NONBLOCK to gnutls_init seems like a worthy change, but why does Emacs need to fiddle with an errno function? Surely GnuTLS should do the right thing with async connections, without Emacs having to insert a shim. Isn't this a bug in GnuTLS? * The proposed patch uses gnutls_transport_set_errno_function, introduced in GnuTLS 2.12.0. Emacs master currently requires only GnuTLS 2.6.6 or later. Would it be wise to bump the prerequisite version from 2.6.6 to 2.12.0? I'll CC: this to Ted Zlanatov to see what he thinks. From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Resent-From: Ted Zlatanov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 26 Jul 2016 14:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Paul Eggert Cc: Jun Hao , 23982@debbugs.gnu.org, npostavs@users.sourceforge.net Received: via spool by 23982-submit@debbugs.gnu.org id=B23982.146954453128059 (code B ref 23982); Tue, 26 Jul 2016 14:49:02 +0000 Received: (at 23982) by debbugs.gnu.org; 26 Jul 2016 14:48:51 +0000 Received: from localhost ([127.0.0.1]:38248 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bS3f4-0007IR-T8 for submit@debbugs.gnu.org; Tue, 26 Jul 2016 10:48:51 -0400 Received: from mail-pf0-f180.google.com ([209.85.192.180]:33300) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bS3ey-0007I8-Lt for 23982@debbugs.gnu.org; Tue, 26 Jul 2016 10:48:45 -0400 Received: by mail-pf0-f180.google.com with SMTP id y134so602746pfg.0 for <23982@debbugs.gnu.org>; Tue, 26 Jul 2016 07:48:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lifelogs.com; s=google; h=from:to:cc:subject:organization:references:mail-copies-to :gmane-reply-to-list:date:in-reply-to:message-id:user-agent :mime-version; bh=CbMLnriyTqDJrHEts8fSG4S1LDIias3JMQnl/D7pDZU=; b=PGtMo+2u/2zwzCjjscsFXcOuyxoH0oOAgu1fXXqtnHSLzd/woCnkuccZqhVTWIcA52 idBYF4TLd4a+sToOw3v1MhMqs5B4agpkbd0c6546uFnZ0B4vaxlFxLFYkp29QhL25ogM mAY4gFUV1ES05NOb/cTYRNegPW/4Ru+hGlmUU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:organization:references :mail-copies-to:gmane-reply-to-list:date:in-reply-to:message-id :user-agent:mime-version; bh=CbMLnriyTqDJrHEts8fSG4S1LDIias3JMQnl/D7pDZU=; b=irAwMbSH5ST5nS7S1v7UG8UXYXJgs0XcNlyIipjvRVPvMFjkdyPPZpTRE+RDiI++Nc R2rO0B7jCI032xyp3itA4ZHjrD7zLLBc17zLnFssE0dpzjj1C5x4lasDEUYIH2FmbMW7 eEAGErNvmtpYT9LugElAhPggqjnuojvGyya0rLP0E5lo8ihk78bOJNAlUcgwwJXJB1QA +HIWwM1aKuslMY+GJvN7v6/8CpsbbRsWjeXQZZ2vm0F1/zuq88iEEUHnGeF3CI1Uf46C wmhNGz1GyWe34Znr5PD+vZFMhT4Z8orMkOUnrh+/rXutrrI5CFV258AMe1UXAYXxJI3v OVxg== X-Gm-Message-State: AEkoouvV7QWhO+zZmF9kjm/mbtfIbKcDUTsglZZpwia/Bai8wK5JF3DAngVFI+WowSPyYg== X-Received: by 10.98.82.74 with SMTP id g71mr39806485pfb.157.1469544514855; Tue, 26 Jul 2016 07:48:34 -0700 (PDT) Received: from flea (c-98-229-60-157.hsd1.ma.comcast.net. [98.229.60.157]) by smtp.gmail.com with ESMTPSA id o80sm2204636pfa.67.2016.07.26.07.48.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Jul 2016 07:48:34 -0700 (PDT) From: Ted Zlatanov Organization: =?UTF-8?Q?=D0=A2=D0=B5=D0=BE=D0=B4=D0=BE=D1=80_?= =?UTF-8?Q?=D0=97=D0=BB=D0=B0=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= @ Cienfuegos References: <14f6e684-04ee-4c65-b673-767fcf1a5ead@cs.ucla.edu> X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never Gmane-Reply-To-List: yes Date: Tue, 26 Jul 2016 10:48:28 -0400 In-Reply-To: <14f6e684-04ee-4c65-b673-767fcf1a5ead@cs.ucla.edu> (Paul Eggert's message of "Tue, 26 Jul 2016 09:35:04 +0200") Message-ID: <8737mwihfn.fsf@lifelogs.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Tue, 26 Jul 2016 09:35:04 +0200 Paul Eggert wrote: PE> * The proposed patch uses gnutls_transport_set_errno_function, introduced in PE> GnuTLS 2.12.0. Emacs master currently requires only GnuTLS 2.6.6 or later. Would PE> it be wise to bump the prerequisite version from 2.6.6 to 2.12.0? I'll CC: this PE> to Ted Zlanatov to see what he thinks. 2.12.2 was released on 2011-04-08 so I think 5 years is long enough, we can bump the required version. From a security standpoint I think it's a good upgrade and the majority of the users will see it as a good change. If we do, however, we should also review the API changes and see if our usage in gnutls.c and gnutls.el can be improved or simplified with new features like `gnutls_transport_set_errno_function'. Similarly, we should consider migrating to GnuTLS 3.x if anyone is interested, it should be a fun project (especially if it maintains 2.12 compatibility). Ted From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 26 Jul 2016 15:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Ted Zlatanov Cc: jun_hao@aol.com, npostavs@users.sourceforge.net, eggert@cs.ucla.edu, 23982@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 23982-submit@debbugs.gnu.org id=B23982.146954572829843 (code B ref 23982); Tue, 26 Jul 2016 15:09:02 +0000 Received: (at 23982) by debbugs.gnu.org; 26 Jul 2016 15:08:48 +0000 Received: from localhost ([127.0.0.1]:38256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bS3yO-0007lD-3F for submit@debbugs.gnu.org; Tue, 26 Jul 2016 11:08:48 -0400 Received: from eggs.gnu.org ([208.118.235.92]:53772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bS3yI-0007kT-PQ for 23982@debbugs.gnu.org; Tue, 26 Jul 2016 11:08:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bS3yA-0007Qn-H3 for 23982@debbugs.gnu.org; Tue, 26 Jul 2016 11:08:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:41055) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS3xv-0007Kl-FH; Tue, 26 Jul 2016 11:08:15 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1698 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bS3xt-0000tO-Hs; Tue, 26 Jul 2016 11:08:14 -0400 Date: Tue, 26 Jul 2016 18:08:02 +0300 Message-Id: <8360rstp2l.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <8737mwihfn.fsf@lifelogs.com> (message from Ted Zlatanov on Tue, 26 Jul 2016 10:48:28 -0400) References: <14f6e684-04ee-4c65-b673-767fcf1a5ead@cs.ucla.edu> <8737mwihfn.fsf@lifelogs.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.3 (------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > Date: Tue, 26 Jul 2016 10:48:28 -0400 > Cc: Jun Hao , 23982@debbugs.gnu.org, > npostavs@users.sourceforge.net > > Similarly, we should consider migrating to GnuTLS 3.x if anyone is > interested, it should be a fun project (especially if it maintains 2.12 > compatibility). ??? I'm building Emacs with GnuTLS 3.3.11 since many moons ago. From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection In-Reply-To: Resent-From: Ted Zlatanov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 26 Jul 2016 15:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 23982@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Reply-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.146954613730523 (code B ref -1); Tue, 26 Jul 2016 15:16:01 +0000 Received: (at submit) by debbugs.gnu.org; 26 Jul 2016 15:15:37 +0000 Received: from localhost ([127.0.0.1]:38276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bS44z-0007wC-He for submit@debbugs.gnu.org; Tue, 26 Jul 2016 11:15:37 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55834) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bS44u-0007vt-2i for submit@debbugs.gnu.org; Tue, 26 Jul 2016 11:15:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bS44k-00021D-07 for submit@debbugs.gnu.org; Tue, 26 Jul 2016 11:15:23 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:55191) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS44j-000219-TF for submit@debbugs.gnu.org; Tue, 26 Jul 2016 11:15:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46780) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS44c-00073b-Nf for bug-gnu-emacs@gnu.org; Tue, 26 Jul 2016 11:15:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bS44W-0001uJ-Ho for bug-gnu-emacs@gnu.org; Tue, 26 Jul 2016 11:15:09 -0400 Received: from plane.gmane.org ([80.91.229.3]:57770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bS44W-0001u1-Ay for bug-gnu-emacs@gnu.org; Tue, 26 Jul 2016 11:15:04 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1bS44S-0007Rh-7u for bug-gnu-emacs@gnu.org; Tue, 26 Jul 2016 17:15:00 +0200 Received: from c-98-229-60-157.hsd1.ma.comcast.net ([98.229.60.157]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 26 Jul 2016 17:15:00 +0200 Received: from tzz by c-98-229-60-157.hsd1.ma.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 26 Jul 2016 17:15:00 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: bug-gnu-emacs@gnu.org From: Ted Zlatanov Date: Tue, 26 Jul 2016 11:14:54 -0400 Organization: =?UTF-8?Q?=D0=A2=D0=B5=D0=BE=D0=B4=D0=BE=D1=80_?= =?UTF-8?Q?=D0=97=D0=BB=D0=B0=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= @ Cienfuegos Lines: 18 Message-ID: <87twfch1n5.fsf@lifelogs.com> References: <14f6e684-04ee-4c65-b673-767fcf1a5ead@cs.ucla.edu> <8737mwihfn.fsf@lifelogs.com> <8360rstp2l.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: c-98-229-60-157.hsd1.ma.comcast.net X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) Cancel-Lock: sha1:n+FAXmjxIRYlnXKbmzgdj/w0enE= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Tue, 26 Jul 2016 18:08:02 +0300 Eli Zaretskii wrote: >> Date: Tue, 26 Jul 2016 10:48:28 -0400 >> Cc: Jun Hao , 23982@debbugs.gnu.org, >> npostavs@users.sourceforge.net >> >> Similarly, we should consider migrating to GnuTLS 3.x if anyone is >> interested, it should be a fun project (especially if it maintains 2.12 >> compatibility). EZ> ??? I'm building Emacs with GnuTLS 3.3.11 since many moons ago. Of course. I meant taking advantage of 3.x features and APIs while maintaining 2.12 compatibility. It should be an incremental improvement, theoretically, but since 3.0.1 was released on 2011-08-21 there have been quite a few changes. Ted From unknown Sun Jun 15 08:56:38 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jun Hao Subject: bug#23982: closed (Re: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection) Message-ID: References: <8e870d1c-d548-0e34-5a9b-961b1773706c@cs.ucla.edu> X-Gnu-PR-Message: they-closed 23982 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 23982@debbugs.gnu.org Date: Wed, 03 Aug 2016 09:03:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1470214982-7986-1" This is a multi-part message in MIME format... ------------=_1470214982-7986-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async c= onnection which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 23982@debbugs.gnu.org. --=20 23982: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D23982 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1470214982-7986-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 23982-done) by debbugs.gnu.org; 3 Aug 2016 09:02:25 +0000 Received: from localhost ([127.0.0.1]:54068 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUs4F-000243-V5 for submit@debbugs.gnu.org; Wed, 03 Aug 2016 05:02:25 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:55551) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUs4D-00023p-JM for 23982-done@debbugs.gnu.org; Wed, 03 Aug 2016 05:02:22 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C37A41610DB; Wed, 3 Aug 2016 02:02:15 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 1SnZ-gZd0r4R; Wed, 3 Aug 2016 02:02:12 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 16D10161118; Wed, 3 Aug 2016 02:02:12 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id aqBMbWtixUBA; Wed, 3 Aug 2016 02:02:11 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id DD9DB1610DB; Wed, 3 Aug 2016 02:02:11 -0700 (PDT) Subject: Re: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection To: Eli Zaretskii , Ted Zlatanov References: <14f6e684-04ee-4c65-b673-767fcf1a5ead@cs.ucla.edu> <8737mwihfn.fsf@lifelogs.com> <8360rstp2l.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <8e870d1c-d548-0e34-5a9b-961b1773706c@cs.ucla.edu> Date: Wed, 3 Aug 2016 02:02:11 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <8360rstp2l.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------7C11DDA71CDCC0EF73AE927D" X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 23982-done Cc: jun_hao@aol.com, 23982-done@debbugs.gnu.org, npostavs@users.sourceforge.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.2 (-) This is a multi-part message in MIME format. --------------7C11DDA71CDCC0EF73AE927D Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Eli Zaretskii wrote: > I'm building Emacs with GnuTLS 3.3.11 since many moons ago. OK, I installed the attached patches to GNU Emacs master. The first one requires GnuTLS 2.12.2 or later. The second one uses the GNUTLS_NONBLOCK flag, and works around the apparent GnuTLS bug with EINPROGRESS and ENOTCONN. --------------7C11DDA71CDCC0EF73AE927D Content-Type: text/plain; charset=UTF-8; name="0001-Require-GnuTLS-2.12.2-or-later.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Require-GnuTLS-2.12.2-or-later.txt" RnJvbSBiMjgzYzYwM2I1NDZmNjc4YzNlYjdkMzFiMDZjMjhiN2RhMjg1OTYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDMgQXVnIDIwMTYgMDQ6MzM6MjEgLTA0MDAKU3ViamVjdDogW1BBVENI IDEvMl0gUmVxdWlyZSBHbnVUTFMgMi4xMi4yIG9yIGxhdGVyCk1JTUUtVmVyc2lvbjogMS4w CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgoqIGNvbmZpZ3VyZS5hYywgZXRjL05FV1M6IFJlcXVpcmUg R251VExTIDIuMTIuMiBvciBsYXRlciwKaW5zdGVhZCBvZiBtZXJlbHkgMi42LjYgb3IgbGF0 ZXIgKEJ1ZyMyMzk4MiMyMCkuCiogc3JjL2dudXRscy5jIChpbml0X2dudXRsc19mdW5jdGlv bnMsIGVtYWNzX2dudXRsc19oYW5kc2hha2UpCltXSU5ET1dTTlRdOiBEb27igJl0IGJvdGhl ciB3aXRoIGdudXRsc19jaGVja192ZXJzaW9uIG9yCmdudXRsc190cmFuc3BvcnRfc2V0X2xv d2F0LCBhcyB0aGV5IGFyZSBubyBsb25nZXIgbmVlZGVkIG5vdyB0aGF0CndlIHJlcXVpcmUg Z251dGxzIDIuMTIuMiBvciBsYXRlci4KLS0tCiBjb25maWd1cmUuYWMgfCAgMiArLQogZXRj L05FV1MgICAgIHwgIDMgKysrCiBzcmMvZ251dGxzLmMgfCAyMyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCBj Y2E1NTVjLi5lOGFlYWUyIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmln dXJlLmFjCkBAIC0yNzQ4LDcgKzI3NDgsNyBAQCBBQ19ERUZVTgogCiBIQVZFX0dOVVRMUz1u bwogaWYgdGVzdCAiJHt3aXRoX2dudXRsc30iID0gInllcyIgOyB0aGVuCi0gIEVNQUNTX0NI RUNLX01PRFVMRVMoW0xJQkdOVVRMU10sIFtnbnV0bHMgPj0gMi42LjZdLAorICBFTUFDU19D SEVDS19NT0RVTEVTKFtMSUJHTlVUTFNdLCBbZ251dGxzID49IDIuMTIuMl0sCiAgICAgW0hB VkVfR05VVExTPXllc10sIFtIQVZFX0dOVVRMUz1ub10pCiAgIGlmIHRlc3QgIiR7SEFWRV9H TlVUTFN9IiA9ICJ5ZXMiOyB0aGVuCiAgICAgQUNfREVGSU5FKEhBVkVfR05VVExTLCAxLCBb RGVmaW5lIGlmIHVzaW5nIEdudVRMUy5dKQpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMv TkVXUwppbmRleCA2NDYyZWZmLi5mYWRmNGMyIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysg Yi9ldGMvTkVXUwpAQCAtMjgsNiArMjgsOSBAQCBvdGhlcndpc2UgbGVhdmUgaXQgdW5tYXJr ZWQuCiAqKiBCeSBkZWZhdWx0IGxpYmdudXRscyBpcyBub3cgcmVxdWlyZWQgd2hlbiBidWls ZGluZyBFbWFjcy4KIFVzZSAnY29uZmlndXJlIC0td2l0aC1nbnV0bHM9bm8nIHRvIGJ1aWxk IGV2ZW4gd2hlbiBHbnVUTFMgaXMgbWlzc2luZy4KIAorKiogR251VExTIHZlcnNpb24gMi4x Mi4yIG9yIGxhdGVyIGlzIG5vdyByZXF1aXJlZCwgaW5zdGVhZCBvZiBtZXJlbHkKK3ZlcnNp b24gMi42LjYgb3IgbGF0ZXIuCisKICoqIFRoZSBuZXcgb3B0aW9uICdjb25maWd1cmUgLS1l bmFibGUtZ2NjLXdhcm5pbmdzPXdhcm4tb25seScgY2F1c2VzCiBHQ0MgdG8gaXNzdWUgd2Fy bmluZ3Mgd2l0aG91dCBzdG9wcGluZyB0aGUgYnVpbGQuICBUaGlzIGJlaGF2aW9yIGlzCiBu b3cgdGhlIGRlZmF1bHQgaW4gZGV2ZWxvcGVyIGJ1aWxkcy4gIEFzIGJlZm9yZSwgdXNlCmRp ZmYgLS1naXQgYS9zcmMvZ251dGxzLmMgYi9zcmMvZ251dGxzLmMKaW5kZXggN2YwNWFjNC4u NjgxZTI5OCAxMDA2NDQKLS0tIGEvc3JjL2dudXRscy5jCisrKyBiL3NyYy9nbnV0bHMuYwpA QCAtMTEwLDggKzExMCw2IEBAIERFRl9ETExfRk4gKHNzaXplX3QsIGdudXRsc19yZWNvcmRf c2VuZCwKIAkgICAgKGdudXRsc19zZXNzaW9uX3QsIGNvbnN0IHZvaWQgKiwgc2l6ZV90KSk7 CiBERUZfRExMX0ZOIChjb25zdCBjaGFyICosIGdudXRsc19zdHJlcnJvciwgKGludCkpOwog REVGX0RMTF9GTiAodm9pZCwgZ251dGxzX3RyYW5zcG9ydF9zZXRfZXJybm8sIChnbnV0bHNf c2Vzc2lvbl90LCBpbnQpKTsKLURFRl9ETExfRk4gKGNvbnN0IGNoYXIgKiwgZ251dGxzX2No ZWNrX3ZlcnNpb24sIChjb25zdCBjaGFyICopKTsKLURFRl9ETExfRk4gKHZvaWQsIGdudXRs c190cmFuc3BvcnRfc2V0X2xvd2F0LCAoZ251dGxzX3Nlc3Npb25fdCwgaW50KSk7CiBERUZf RExMX0ZOICh2b2lkLCBnbnV0bHNfdHJhbnNwb3J0X3NldF9wdHIyLAogCSAgICAoZ251dGxz X3Nlc3Npb25fdCwgZ251dGxzX3RyYW5zcG9ydF9wdHJfdCwKIAkgICAgIGdudXRsc190cmFu c3BvcnRfcHRyX3QpKTsKQEAgLTIyNSwxMSArMjIzLDYgQEAgaW5pdF9nbnV0bHNfZnVuY3Rp b25zICh2b2lkKQogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ251dGxzX3JlY29yZF9zZW5k KTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdudXRsc19zdHJlcnJvcik7CiAgIExPQURf RExMX0ZOIChsaWJyYXJ5LCBnbnV0bHNfdHJhbnNwb3J0X3NldF9lcnJubyk7Ci0gIExPQURf RExMX0ZOIChsaWJyYXJ5LCBnbnV0bHNfY2hlY2tfdmVyc2lvbik7Ci0gIC8qIFdlIGRvbid0 IG5lZWQgdG8gY2FsbCBnbnV0bHNfdHJhbnNwb3J0X3NldF9sb3dhdCBpbiBHbnVUTFMgMi4x MS4xCi0gICAgIGFuZCBsYXRlciwgYW5kIHRoZSBmdW5jdGlvbiB3YXMgcmVtb3ZlZCBlbnRp cmVseSBpbiAzLjAuMC4gICovCi0gIGlmICghZm5fZ251dGxzX2NoZWNrX3ZlcnNpb24gKCIy LjExLjEiKSkKLSAgICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ251dGxzX3RyYW5zcG9ydF9z ZXRfbG93YXQpOwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ251dGxzX3RyYW5zcG9ydF9z ZXRfcHRyMik7CiAgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBnbnV0bHNfdHJhbnNwb3J0X3Nl dF9wdWxsX2Z1bmN0aW9uKTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdudXRsc190cmFu c3BvcnRfc2V0X3B1c2hfZnVuY3Rpb24pOwpAQCAtMjkwLDcgKzI4Myw2IEBAIGluaXRfZ251 dGxzX2Z1bmN0aW9ucyAodm9pZCkKICMgZGVmaW5lIGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRf eDUwOV90cnVzdF9maWxlIGZuX2dudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV90cnVzdF9m aWxlCiAjIGRlZmluZSBnbnV0bHNfY2VydGlmaWNhdGVfdHlwZV9nZXQgZm5fZ251dGxzX2Nl cnRpZmljYXRlX3R5cGVfZ2V0CiAjIGRlZmluZSBnbnV0bHNfY2VydGlmaWNhdGVfdmVyaWZ5 X3BlZXJzMiBmbl9nbnV0bHNfY2VydGlmaWNhdGVfdmVyaWZ5X3BlZXJzMgotIyBkZWZpbmUg Z251dGxzX2NoZWNrX3ZlcnNpb24gZm5fZ251dGxzX2NoZWNrX3ZlcnNpb24KICMgZGVmaW5l IGdudXRsc19jaXBoZXJfZ2V0IGZuX2dudXRsc19jaXBoZXJfZ2V0CiAjIGRlZmluZSBnbnV0 bHNfY2lwaGVyX2dldF9uYW1lIGZuX2dudXRsc19jaXBoZXJfZ2V0X25hbWUKICMgZGVmaW5l IGdudXRsc19jcmVkZW50aWFsc19zZXQgZm5fZ251dGxzX2NyZWRlbnRpYWxzX3NldApAQCAt MzIxLDcgKzMxMyw2IEBAIGluaXRfZ251dGxzX2Z1bmN0aW9ucyAodm9pZCkKICMgZGVmaW5l IGdudXRsc19zaWduX2dldF9uYW1lIGZuX2dudXRsc19zaWduX2dldF9uYW1lCiAjIGRlZmlu ZSBnbnV0bHNfc3RyZXJyb3IgZm5fZ251dGxzX3N0cmVycm9yCiAjIGRlZmluZSBnbnV0bHNf dHJhbnNwb3J0X3NldF9lcnJubyBmbl9nbnV0bHNfdHJhbnNwb3J0X3NldF9lcnJubwotIyBk ZWZpbmUgZ251dGxzX3RyYW5zcG9ydF9zZXRfbG93YXQgZm5fZ251dGxzX3RyYW5zcG9ydF9z ZXRfbG93YXQKICMgZGVmaW5lIGdudXRsc190cmFuc3BvcnRfc2V0X3B0cjIgZm5fZ251dGxz X3RyYW5zcG9ydF9zZXRfcHRyMgogIyBkZWZpbmUgZ251dGxzX3RyYW5zcG9ydF9zZXRfcHVs bF9mdW5jdGlvbiBmbl9nbnV0bHNfdHJhbnNwb3J0X3NldF9wdWxsX2Z1bmN0aW9uCiAjIGRl ZmluZSBnbnV0bHNfdHJhbnNwb3J0X3NldF9wdXNoX2Z1bmN0aW9uIGZuX2dudXRsc190cmFu c3BvcnRfc2V0X3B1c2hfZnVuY3Rpb24KQEAgLTQzOSwyMCArNDMwLDYgQEAgZW1hY3NfZ251 dGxzX2hhbmRzaGFrZSAoc3RydWN0IExpc3BfUHJvY2VzcyAqcHJvYykKIAkJCQkgKGdudXRs c190cmFuc3BvcnRfcHRyX3QpIHByb2MpOwogICAgICAgZ251dGxzX3RyYW5zcG9ydF9zZXRf cHVzaF9mdW5jdGlvbiAoc3RhdGUsICZlbWFjc19nbnV0bHNfcHVzaCk7CiAgICAgICBnbnV0 bHNfdHJhbnNwb3J0X3NldF9wdWxsX2Z1bmN0aW9uIChzdGF0ZSwgJmVtYWNzX2dudXRsc19w dWxsKTsKLQotICAgICAgLyogRm9yIG5vbiBibG9ja2luZyBzb2NrZXRzIG9yIG90aGVyIGN1 c3RvbSBtYWRlIHB1bGwvcHVzaAotCSBmdW5jdGlvbnMgdGhlIGdudXRsc190cmFuc3BvcnRf c2V0X2xvd2F0IG11c3QgYmUgY2FsbGVkLCB3aXRoCi0JIGEgemVybyBsb3cgd2F0ZXIgbWFy ayB2YWx1ZS4gKEdudVRMUyAyLjEwLjQgZG9jdW1lbnRhdGlvbikKLQotCSAoTm90ZTogdGhp cyBpcyBwcm9iYWJseSBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGFzIHRoZSBsb3dhdAotCSAg dmFsdWUgaXMgb25seSB1c2VkIHdoZW4gbm8gY3VzdG9tIHB1bGwvcHVzaCBmdW5jdGlvbnMg YXJlCi0JICBzZXQuKSAgKi8KLSAgICAgIC8qIEFjY29yZGluZyB0byBHbnVUTFMgTkVXUyBm aWxlLCBsb3dhdCBsZXZlbCBoYXMgYmVlbiBzZXQgdG8KLQkgemVybyBieSBkZWZhdWx0IGlu IHZlcnNpb24gMi4xMS4xLCBhbmQgdGhlIGZ1bmN0aW9uCi0JIGdudXRsc190cmFuc3BvcnRf c2V0X2xvd2F0IHdhcyByZW1vdmVkIGZyb20gdGhlIGxpYnJhcnkgaW4KLQkgdmVyc2lvbiAy Ljk5LjAuICAqLwotICAgICAgaWYgKCFnbnV0bHNfY2hlY2tfdmVyc2lvbiAoIjIuMTEuMSIp KQotCWdudXRsc190cmFuc3BvcnRfc2V0X2xvd2F0IChzdGF0ZSwgMCk7CiAjZWxzZQogICAg ICAgLyogVGhpcyBpcyBob3cgR251VExTIHRha2VzIHNvY2tldHM6IGFzIGZpbGUgZGVzY3Jp cHRvcnMgcGFzc2VkCiAJIGluLiAgRm9yIGFuIEVtYWNzIHByb2Nlc3Mgc29ja2V0LCBpbmZk IGFuZCBvdXRmZCBhcmUgdGhlCi0tIAoyLjUuNQoK --------------7C11DDA71CDCC0EF73AE927D Content-Type: text/plain; charset=UTF-8; name="0002-Fix-non-blocking-GnuTLS-with-slow-connection.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Fix-non-blocking-GnuTLS-with-slow-connection.txt" RnJvbSAzMDI5Zjc0YWQ1YjhmOTg5ZTI2NjczYTMxYzI1N2ZhMmFhOGQ3MzA0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDMgQXVnIDIwMTYgMDE6NTQ6MjAgLTA3MDAKU3ViamVjdDogW1BBVENI IDIvMl0gRml4IG5vbi1ibG9ja2luZyBHbnVUTFMgd2l0aCBzbG93IGNvbm5lY3Rpb24KCkFs dGhvdWdoIHRoZSBwcm9ibGVtIGlzIHJlcG9ydGVkIGZvciBPUyBYIChCdWcjMjM5ODIpLCBp dCBzZWVtcyB0bwpiZSBwb3NzaWJsZSBvbiBvdGhlciBQT1NJWGlzaCBwbGF0Zm9ybXMuCiog c3JjL2dudXRscy5jIChlbWFjc19nbnV0bHNfbm9uYmxvY2tfZXJybm8pIFshV0lORE9XU05U XToKTmV3IGZ1bmN0aW9uLgooZW1hY3NfZ251dGxzX2hhbmRzaGFrZSkgWyFXSU5ET1dTTlRd OgpVc2UgaXQgYXMgdGhlIGVycm5vIGZ1bmN0aW9uLCBpZiBub24tYmxvY2tpbmcuCihGZ251 dGxzX2Jvb3QpOiBVc2UgR05VVExTX05PTkJMT0NLIGlmIG5vbi1ibG9ja2luZy4KLS0tCiBz cmMvZ251dGxzLmMgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZp bGUgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyYy9nbnV0bHMuYyBiL3NyYy9nbnV0bHMuYwppbmRleCA2ODFlMjk4Li5lM2U5MzEx IDEwMDY0NAotLS0gYS9zcmMvZ251dGxzLmMKKysrIGIvc3JjL2dudXRscy5jCkBAIC00MTEs NiArNDExLDMxIEBAIGdudXRsc190cnlfaGFuZHNoYWtlIChzdHJ1Y3QgTGlzcF9Qcm9jZXNz ICpwcm9jKQogICByZXR1cm4gcmV0OwogfQogCisjaWZuZGVmIFdJTkRPV1NOVAorc3RhdGlj IGludAorZW1hY3NfZ251dGxzX25vbmJsb2NrX2Vycm5vIChnbnV0bHNfdHJhbnNwb3J0X3B0 cl90IHB0cikKK3sKKyAgaW50IGVyciA9IGVycm5vOworCisgIHN3aXRjaCAoZXJyKQorICAg IHsKKyMgaWZkZWYgX0FJWAorICAgICAgLyogVGhpcyBpcyB0YWtlbiBmcm9tIHRoZSBHbnVU TFMgc3lzdGVtX2Vycm5vIGZ1bmN0aW9uIGNpcmNhIDIwMTY7CisJIHNlZSA8aHR0cDovL3Nh dmFubmFoLmdudS5vcmcvc3VwcG9ydC8/MTA3NDY0Pi4gICovCisgICAgY2FzZSAwOgorICAg ICAgZXJybm8gPSBFQUdBSU47CisgICAgICAvKiBGYWxsIHRocm91Z2guICAqLworIyBlbmRp ZgorICAgIGNhc2UgRUlOUFJPR1JFU1M6CisgICAgY2FzZSBFTk9UQ09OTjoKKyAgICAgIHJl dHVybiBFQUdBSU47CisKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIGVycjsKKyAgICB9 Cit9CisjZW5kaWYKKwogc3RhdGljIGludAogZW1hY3NfZ251dGxzX2hhbmRzaGFrZSAoc3Ry dWN0IExpc3BfUHJvY2VzcyAqcHJvYykKIHsKQEAgLTQzNyw2ICs0NjIsOSBAQCBlbWFjc19n bnV0bHNfaGFuZHNoYWtlIChzdHJ1Y3QgTGlzcF9Qcm9jZXNzICpwcm9jKQogICAgICAgZ251 dGxzX3RyYW5zcG9ydF9zZXRfcHRyMiAoc3RhdGUsCiAJCQkJICh2b2lkICopIChpbnRwdHJf dCkgcHJvYy0+aW5mZCwKIAkJCQkgKHZvaWQgKikgKGludHB0cl90KSBwcm9jLT5vdXRmZCk7 CisgICAgICBpZiAocHJvYy0+aXNfbm9uX2Jsb2NraW5nX2NsaWVudCkKKwlnbnV0bHNfdHJh bnNwb3J0X3NldF9lcnJub19mdW5jdGlvbiAoc3RhdGUsCisJCQkJCSAgICAgZW1hY3NfZ251 dGxzX25vbmJsb2NrX2Vycm5vKTsKICNlbmRpZgogCiAgICAgICBwcm9jLT5nbnV0bHNfaW5p dHN0YWdlID0gR05VVExTX1NUQUdFX1RSQU5TUE9SVF9QT0lOVEVSU19TRVQ7CkBAIC0xNTc0 LDcgKzE2MDIsOCBAQCBvbmUgdHJ1c3RmaWxlICh1c3VhbGx5IGEgQ0EgYnVuZGxlKS4gICov KQogICAvKiBDYWxsIGdudXRsc19pbml0IGhlcmU6ICovCiAKICAgR05VVExTX0xPRyAoMSwg bWF4X2xvZ19sZXZlbCwgImdudXRsc19pbml0Iik7Ci0gIHJldCA9IGdudXRsc19pbml0ICgm c3RhdGUsIEdOVVRMU19DTElFTlQpOworICBpbnQgbm9uYmxvY2sgPSBYUFJPQ0VTUyAocHJv YyktPmlzX25vbl9ibG9ja2luZ19jbGllbnQgPyBHTlVUTFNfTk9OQkxPQ0sgOiAwOworICBy ZXQgPSBnbnV0bHNfaW5pdCAoJnN0YXRlLCBHTlVUTFNfQ0xJRU5UIHwgbm9uYmxvY2spOwog ICBYUFJPQ0VTUyAocHJvYyktPmdudXRsc19zdGF0ZSA9IHN0YXRlOwogICBpZiAocmV0IDwg R05VVExTX0VfU1VDQ0VTUykKICAgICByZXR1cm4gZ251dGxzX21ha2VfZXJyb3IgKHJldCk7 Ci0tIAoyLjUuNQoK --------------7C11DDA71CDCC0EF73AE927D-- ------------=_1470214982-7986-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 14 Jul 2016 14:17:41 +0000 Received: from localhost ([127.0.0.1]:51522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNhSO-0001v9-TE for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45545) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNhSL-0001us-Nv for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNhSF-0000dV-Kv for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53351) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNhSF-0000dP-Hk for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:17:31 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36499) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNhSC-0001tU-Vk for bug-gnu-emacs@gnu.org; Thu, 14 Jul 2016 10:17:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNhS7-0000cO-Jd for bug-gnu-emacs@gnu.org; Thu, 14 Jul 2016 10:17:27 -0400 Received: from omr-a017e.mx.aol.com ([204.29.186.68]:51939) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNhS7-0000cE-Ee for bug-gnu-emacs@gnu.org; Thu, 14 Jul 2016 10:17:23 -0400 Received: from mtaout-aan02.mx.aol.com (mtaout-aan02.mx.aol.com [172.27.19.78]) by omr-a017e.mx.aol.com (Outbound Mail Relay) with ESMTP id 5422138000B9 for ; Thu, 14 Jul 2016 10:17:22 -0400 (EDT) Received: from bogon (unknown [61.51.195.178]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mtaout-aan02.mx.aol.com (MUA/Third Party Client Interface) with ESMTPSA id DCB4238000092 for ; Thu, 14 Jul 2016 10:17:19 -0400 (EDT) User-agent: mu4e 0.9.17; emacs 25.1.50.2 From: Jun Hao To: bug-gnu-emacs@gnu.org Subject: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Date: Thu, 14 Jul 2016 22:17:13 +0800 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" x-aol-global-disposition: G X-AOL-VSS-INFO: 5800.7501/110832 X-AOL-VSS-CODE: clean DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mx.aol.com; s=20150623; t=1468505842; bh=46HS8I9JIlQpjVWgTE9eZjHJGPN4iuSAyYB8Ckcidcg=; h=From:To:Subject:Message-ID:Date:MIME-Version:Content-Type; b=WQSbB4OOSxiOR3kAa6OrQCf9094X/o7M7zz7lRqjCvqcZ5fRN6cQb0O6gOWY0jq+/ eO2RzlfpQsA14d2tuj4ZErT3GHF5PLCqpQrl0O8VFAqlbrg7EeZ+vNKwO3tbHsQSGr O6IrfB+rfdrxPNqtGdYL4909qm5Kq1UvYY14zJPI= x-aol-sid: 3039ac1b134e57879eef5c8a X-AOL-IP: 61.51.195.178 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --=-=-= Content-Type: text/plain Hi, For latest master branch, when try to use gnutls with async connection, the handshake will return fatal error if socket is in ENOTCONN or EINPROGRESS since gnutls treat these errors as fatal during push/pull and gives up. The later retry will fail because gnutls will mark the session invalid. This patch is asking gnutls to treat them as EAGAIN which is non-fatal. I only tested with OSX. Please see if you can reproduce it on Windows or Linux and if this patch works for them too. To reproduce run: emacs -Q --eval "(erc-tls :server \"irc.freenode.net\" :port 6697 :nick \"test\")" Current master branch will gave up connecting. -- Thanks - Jun --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Treat-errno-EINPROGRESS-and-ENOTCONN-as-EAGAIN-for-a.patch >From 8c69cab078d4c51d5c8f76f2aacb7bb8dd46dd7f Mon Sep 17 00:00:00 2001 From: Jun Hao Date: Thu, 14 Jul 2016 21:47:24 +0800 Subject: [PATCH] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection * src/gnutls.c: (emacs_gnutls_non_blocking_errno): treat errno EINPROGRESS and ENOTCONN as EAGAIN (emacs_gnutls_handshake): set errno function to it when async connection (Fgnutls_boot): set state with GNUTLS_NONBLOCK flag when async connection --- src/gnutls.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/gnutls.c b/src/gnutls.c index 7f05ac4..449a971 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -35,6 +35,10 @@ along with GNU Emacs. If not, see . */ static bool emacs_gnutls_handle_error (gnutls_session_t, int); +#ifndef WINDOWSNT +static int emacs_gnutls_non_blocking_errno(gnutls_transport_ptr_t ptr); +#endif + static bool gnutls_global_initialized; static void gnutls_log_function (int, const char *); @@ -383,6 +387,21 @@ gnutls_log_function2 (int level, const char *string, const char *extra) message ("gnutls.c: [%d] %s %s", level, string, extra); } +#ifndef WINDOWSNT +static int +emacs_gnutls_non_blocking_errno(gnutls_transport_ptr_t ptr) +{ + switch (errno) + { + case EINPROGRESS: + case ENOTCONN: + return EAGAIN; + default: + return errno; + } +} +#endif + int gnutls_try_handshake (struct Lisp_Process *proc) { @@ -460,6 +479,11 @@ emacs_gnutls_handshake (struct Lisp_Process *proc) gnutls_transport_set_ptr2 (state, (void *) (intptr_t) proc->infd, (void *) (intptr_t) proc->outfd); + if (proc->is_non_blocking_client) + /* for non blocking connection + treat EINPROGRESS and ENOTCONN as EAGAIN */ + gnutls_transport_set_errno_function(state, + emacs_gnutls_non_blocking_errno); #endif proc->gnutls_initstage = GNUTLS_STAGE_TRANSPORT_POINTERS_SET; @@ -1596,8 +1620,16 @@ one trustfile (usually a CA bundle). */) /* Call gnutls_init here: */ - GNUTLS_LOG (1, max_log_level, "gnutls_init"); - ret = gnutls_init (&state, GNUTLS_CLIENT); + if (XPROCESS (proc)->is_non_blocking_client) + { + GNUTLS_LOG (1, max_log_level, "gnutls_init with nonblocking"); + ret = gnutls_init(&state, GNUTLS_CLIENT|GNUTLS_NONBLOCK); + } + else + { + GNUTLS_LOG (1, max_log_level, "gnutls_init"); + ret = gnutls_init (&state, GNUTLS_CLIENT); + } XPROCESS (proc)->gnutls_state = state; if (ret < GNUTLS_E_SUCCESS) return gnutls_make_error (ret); -- 2.8.0 --=-=-=-- ------------=_1470214982-7986-1-- From unknown Sun Jun 15 08:56:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#23982: [master] Treat errno EINPROGRESS and ENOTCONN as EAGAIN for async connection Resent-From: Ted Zlatanov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 04 Aug 2016 14:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 23982@debbugs.gnu.org Cc: jun_hao@aol.com, eggert@cs.ucla.edu Received: via spool by 23982-submit@debbugs.gnu.org id=B23982.147032056418713 (code B ref 23982); Thu, 04 Aug 2016 14:23:02 +0000 Received: (at 23982) by debbugs.gnu.org; 4 Aug 2016 14:22:44 +0000 Received: from localhost ([127.0.0.1]:55737 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bVJXn-0004rl-WE for submit@debbugs.gnu.org; Thu, 04 Aug 2016 10:22:44 -0400 Received: from mail-pf0-f178.google.com ([209.85.192.178]:32982) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bVJXm-0004rZ-D8 for 23982@debbugs.gnu.org; Thu, 04 Aug 2016 10:22:43 -0400 Received: by mail-pf0-f178.google.com with SMTP id y134so87329368pfg.0 for <23982@debbugs.gnu.org>; Thu, 04 Aug 2016 07:22:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lifelogs.com; s=google; h=from:to:cc:subject:organization:references:mail-copies-to :gmane-reply-to-list:date:in-reply-to:message-id:user-agent :mime-version; bh=DD/9N1jZtb25ZshmKeX6pAPglRBNPKXhf9ej+Ngt/e4=; b=A/Uk5AK6RwEoPAIdlU6grvajtTKr4Qbml4TbKnMJONJr0XsWaGA6y5o1rClS3Omj/d rPOAqKHASSp7yccxwnGmkA6gp+vT9a5aeRvyDCMuNPLjXshQdToHm3Yn03DCcz4Av9tb mlrR1TAkzMcGCt8i9Oyq2nU31YZKK2654A4kA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:organization:references :mail-copies-to:gmane-reply-to-list:date:in-reply-to:message-id :user-agent:mime-version; bh=DD/9N1jZtb25ZshmKeX6pAPglRBNPKXhf9ej+Ngt/e4=; b=KBzshjRUUSlgYEG1UexfdbhYK2uWqcjYSY3iAG7xqP9pBifStd5QJfo36rJvSL1XEf BIjE64pHKQUjHAJNTIBAF08e0pSsVL/rzyg2F4WiVMgp803SG8Nd2+et8norevj6HAKm 0xsJ3Ar0bb55sQbB/NMXgVmD55nh1TBjTCFNduitTOw0NmsmMIfdey2AnLRd4aoleD9G 6a504z+JnMAiXso7Qef2iWmXtbphJha9ohPY6HC+0Rn0xCWeNcoLeZH85O7waFBw2ryk oetowAQ4P9rMmyfxNbGVoJZfZiPGzL9yJJzSBpNtKXXfBjZfSfef1OA2SnzlztjsJteG kCfw== X-Gm-Message-State: AEkoouu8z5xovYd9dwn1sFQ6mWTNvHVphJk+QZNO4rwy+XPegyJb2ZXy6UL1IshWhGA+pA== X-Received: by 10.98.92.65 with SMTP id q62mr126753836pfb.70.1470320556564; Thu, 04 Aug 2016 07:22:36 -0700 (PDT) Received: from flea (c-98-229-60-157.hsd1.ma.comcast.net. [98.229.60.157]) by smtp.gmail.com with ESMTPSA id s1sm20938187paz.47.2016.08.04.07.22.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Aug 2016 07:22:35 -0700 (PDT) From: Ted Zlatanov Organization: =?UTF-8?Q?=D0=A2=D0=B5=D0=BE=D0=B4=D0=BE=D1=80_?= =?UTF-8?Q?=D0=97=D0=BB=D0=B0=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= @ Cienfuegos References: <14f6e684-04ee-4c65-b673-767fcf1a5ead@cs.ucla.edu> <8737mwihfn.fsf@lifelogs.com> <8360rstp2l.fsf@gnu.org> <8e870d1c-d548-0e34-5a9b-961b1773706c@cs.ucla.edu> X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never Gmane-Reply-To-List: yes Date: Thu, 04 Aug 2016 10:22:29 -0400 In-Reply-To: <8e870d1c-d548-0e34-5a9b-961b1773706c@cs.ucla.edu> (Paul Eggert's message of "Wed, 3 Aug 2016 02:02:11 -0700") Message-ID: <87invgd36i.fsf@lifelogs.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Wed, 3 Aug 2016 02:02:11 -0700 Paul Eggert wrote: PE> Eli Zaretskii wrote: >> I'm building Emacs with GnuTLS 3.3.11 since many moons ago. PE> OK, I installed the attached patches to GNU Emacs master. The first one requires PE> GnuTLS 2.12.2 or later. The second one uses the GNUTLS_NONBLOCK flag, and works PE> around the apparent GnuTLS bug with EINPROGRESS and ENOTCONN. Thank you! Ted From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 09 08:57:27 2016 Received: (at control) by debbugs.gnu.org; 9 Aug 2016 12:57:27 +0000 Received: from localhost ([127.0.0.1]:60810 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bX6b1-000340-Hp for submit@debbugs.gnu.org; Tue, 09 Aug 2016 08:57:27 -0400 Received: from mail-oi0-f52.google.com ([209.85.218.52]:33586) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bX6az-00033h-Vz for control@debbugs.gnu.org; Tue, 09 Aug 2016 08:57:26 -0400 Received: by mail-oi0-f52.google.com with SMTP id c15so16198495oig.0 for ; Tue, 09 Aug 2016 05:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=bVroBCifKYskxY9iPEDA4OLOARVoj+mYBllCgevnFG4=; b=KXvr/RHxkvGvvnhXJ8575JWoEhPdJV4IRUelwzF7ki022923he9ZYSsHooQ+vBVroG lN3czFhoXRTCeNxyzcv8yx7s4YVOMXbxhHAklN6J+vCSmMrHs13c++z6uPOCY3B0BnFg Q1oHCFkxJvJkxS8UyCVshZnDWIzKKXlH/KFb3u4PaKt12kSwURmxdsV0V3gYLBh3QwnS 4B0F7eQdTTyEONyvzBkB9Pcun6kOuOMUDJb950RGQNEWvBAD6ibqPWEUs2TxC8H4RdWy +PJU9TVSU4xS2JwbBTts7HkKHh2Xk7IMOw2GeBZ4Abj2DXmATFC1d+P5PK7O1maRyTOo 4oZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=bVroBCifKYskxY9iPEDA4OLOARVoj+mYBllCgevnFG4=; b=GCvg+vgsJc0GEv/b/8Z5zEI65fIt1rUzd3Pqm9p7fiO5AxnJNEx4yIghf27QYwnPDc cj7gNaWdDKKbs8kSQZWQm/4C4Ektt/Sv6TOID70S4RoDEVSPI10bYaqq6zJz1nCUxmmD XxREV5lc/p/IJQzE0mQO28zbI8kmbtyqa7eWSWflP4MLWHUVF11wEz6Rr/5dOfbx51G8 3J35AeuzOtNgUiUy0yAp/HarnLwT879C7XA8xjXaYOjitpuqiumUuVq673MRnUQLFXyJ cmcSSIFCX/PETmA4n0tfZjY/PDXKT27ER1myfWaJW13sBsIdA6J8q15QhTLdSOvdI235 xI0Q== X-Gm-Message-State: AEkoouv8ayq/NvyERtZhOTOL1IkrdYRvm9lGIwtdqRVwJLOevYUnG71u1ntK7Q77+KqNLpojR+7zDG6A/crjwQ== X-Received: by 10.157.38.225 with SMTP id i30mr31041324otd.112.1470747440365; Tue, 09 Aug 2016 05:57:20 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.7.161 with HTTP; Tue, 9 Aug 2016 05:57:19 -0700 (PDT) In-Reply-To: <87wpjtih8q.fsf@gmail.com> References: <8760rn6pox.fsf@gmail.com> <87wpjtih8q.fsf@gmail.com> From: Noam Postavsky Date: Tue, 9 Aug 2016 08:57:19 -0400 X-Google-Sender-Auth: avCU4I0JcFNHKmeG2j_DV7dqOjA Message-ID: Subject: Re: bug#23225: 25.1.50; url-retrieve-synchronously having trouble with some https URLs To: Tao Fang Content-Type: text/plain; charset=UTF-8 Bcc: control@debbugs.gnu.org X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control Cc: Alexis , 23225@debbugs.gnu.org, Chunyang Xu X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) forcemerge 23982 23225 quit On Sat, Aug 6, 2016 at 7:56 PM, Tao Fang wrote: > > Update: issue resolved, refer to bug#23982: > http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23982 > > by commit: > 1a8d31123698ccf6f165e49fcfe16631d07a7aea [...] > Fix non-blocking GnuTLS with slow connection > > Although the problem is reported for OS X (Bug#23982), it seems to > be possible on other POSIXish platforms. [...] > > I've tested on macOS and confirm it's been fixed. Thanks for testing. I guess that means 23982 is macOS specific after all (or at least the bug happens to manifest only on macOS)