Package: libcurl3-gnutls
Version: 7.55.0-1
Severity: important
Tags: upstream patch

Control: affects -1 network-manager-config-connectivity-debian

Hi,

The connectivity checker in NM (install
network-manager-config-connectivity-debian package) times out most of
the time when trying to contact the remote server. NM is using libcurl
to do this.

This issue has affected other distros too, and the problem has been
debugged & a patch provided (attached). Some links

  
https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/curl&id=058482ae218dca2475db23046bf513ab4e9a6601
  https://github.com/curl/curl/commit/74dac344b2feb2e0f4baddb70532dc8e45d2d817

Could you please apply the attached patch as a cherry-pick to unbreak
the checker in Debian? I've built a package with it in and it works
here.

I could NMU if you'd like too.

Cheers,
Iain
>From 74dac344b2feb2e0f4baddb70532dc8e45d2d817 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <[email protected]>
Date: Fri, 18 Aug 2017 10:43:02 +0200
Subject: [PATCH] http: Don't wait on CONNECT when there is no proxy

Since curl 7.55.0, NetworkManager almost always failed its connectivity
check by timeout. I bisected this to 5113ad04 (http-proxy: do the HTTP
CONNECT process entirely non-blocking).

This patch replaces !Curl_connect_complete with Curl_connect_ongoing,
which returns false if the CONNECT state was left uninitialized and lets
the connection continue.

Closes #1803
Fixes #1804

Also-fixed-by: Gergely Nagy
---
 lib/http.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/http.c b/lib/http.c
index 35c7c3d43f..3e33132783 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -1371,7 +1371,7 @@ CURLcode Curl_http_connect(struct connectdata *conn, bool 
*done)
   if(CONNECT_FIRSTSOCKET_PROXY_SSL())
     return CURLE_OK; /* wait for HTTPS proxy SSL initialization to complete */
 
-  if(!Curl_connect_complete(conn))
+  if(Curl_connect_ongoing(conn))
     /* nothing else to do except wait right now - we're not done here. */
     return CURLE_OK;

Reply via email to