File 0001-Fix-invalid-Network-is-unreachable-errors.patch of Package curl.openSUSE_Leap_42.3_Update
From 7781f212206ab3e7e26a73132c604b2dbb2498a1 Mon Sep 17 00:00:00 2001
From: Antonio Larrosa <larrosa@kde.org>
Date: Thu, 5 May 2016 19:50:15 +0200
Subject: [PATCH] Fix invalid "Network is unreachable" errors
Sometimes, in systems with both ipv4 and ipv6 addresses but where the
network doesn't support ipv6, Curl_is_connected returns an error
(intermittently) even if the ipv4 socket connects successfully.
This happens because there's a for-loop that iterates on the sockets
but the error variable is not resetted when the ipv4 is checked and
is ok.
This patch fixes this problem by setting error to 0 when checking the
second socket and not having a result yet.
---
lib/connect.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/connect.c b/lib/connect.c
index 8dfe9e2..ac2f268 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -764,6 +764,7 @@ CURLcode Curl_is_connected(struct connectdata *conn,
rc = Curl_socket_ready(CURL_SOCKET_BAD, conn->tempsock[i], 0);
if(rc == 0) { /* no connection yet */
+ error = 0;
if(curlx_tvdiff(now, conn->connecttime) >= conn->timeoutms_per_addr) {
infof(data, "After %ldms connect time, move on!\n",
conn->timeoutms_per_addr);
--
2.8.1