Blame SOURCES/0018-periodic-connectivity-check-rh1458399.patch

fc9aca
From 2d4555ec97d2cb0829106cbff82753bd168e5a20 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Fri, 12 May 2017 09:37:42 +0200
fc9aca
Subject: [PATCH 1/3] connectivity: avoid compiler warning for argument of
fc9aca
 curl_easy_getinfo()
fc9aca
fc9aca
libcurl employs some typechecking via "curl/typecheck-gcc.h". When
fc9aca
compling with --enable-lto, compilation fails otherwise with:
fc9aca
fc9aca
    make[2]: Entering directory '/data/src/NetworkManager'
fc9aca
      CC       src/src_libNetworkManager_la-nm-connectivity.lo
fc9aca
      CCLD     src/libNetworkManager.la
fc9aca
      CCLD     src/libNetworkManagerTest.la
fc9aca
      CCLD     src/dhcp/tests/test-dhcp-dhclient
fc9aca
    src/nm-connectivity.c: In function 'curl_check_connectivity':
fc9aca
    src/nm-connectivity.c:147:10: error: call to '_curl_easy_getinfo_err_string' declared with attribute warning: curl_easy_getinfo expects a pointer to char * for this info [-Werror]
fc9aca
       eret = curl_easy_getinfo (msg->easy_handle, CURLINFO_PRIVATE, &cb_data);
fc9aca
              ^
fc9aca
    lto1: all warnings being treated as errors
fc9aca
    lto-wrapper: fatal error: /usr/bin/gcc returned 1 exit status
fc9aca
    compilation terminated.
fc9aca
    /usr/bin/ld: error: lto-wrapper failed
fc9aca
fc9aca
(cherry picked from commit 7f8815a9c35c3b588b174c5e0c2568d3068726f6)
fc9aca
(cherry picked from commit 7f139c8ea87d0ceaa1f1d3601c846ace9054ffe5)
fc9aca
---
fc9aca
 src/nm-connectivity.c | 2 +-
fc9aca
 1 file changed, 1 insertion(+), 1 deletion(-)
fc9aca
fc9aca
diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c
fc9aca
index 75bb7b6..0708d96 100644
fc9aca
--- a/src/nm-connectivity.c
fc9aca
+++ b/src/nm-connectivity.c
fc9aca
@@ -144,7 +144,7 @@ curl_check_connectivity (CURLM *mhandle, CURLMcode ret)
fc9aca
 			continue;
fc9aca
 
fc9aca
 		/* Here we have completed a session. Check easy session result. */
fc9aca
-		eret = curl_easy_getinfo (msg->easy_handle, CURLINFO_PRIVATE, &cb_data);
fc9aca
+		eret = curl_easy_getinfo (msg->easy_handle, CURLINFO_PRIVATE, (char **) &cb_data);
fc9aca
 		if (eret != CURLE_OK) {
fc9aca
 			_LOG2E ("curl cannot extract cb_data for easy handle %p, skipping msg", msg->easy_handle);
fc9aca
 			continue;
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From e94a36ce1c880c5a4f52ae59d18bb2b6d2bee704 Mon Sep 17 00:00:00 2001
fc9aca
From: Francesco Giudici <fgiudici@redhat.com>
fc9aca
Date: Wed, 3 May 2017 17:01:41 +0200
fc9aca
Subject: [PATCH 2/3] connectivity: fix typo in error message
fc9aca
fc9aca
(cherry picked from commit 7a2c31a54a7ee82b930b0d9ef21ea11f565c2859)
fc9aca
(cherry picked from commit 16187171709347611caf9b8e8c75988c15b66b12)
fc9aca
---
fc9aca
 src/nm-connectivity.c | 2 +-
fc9aca
 1 file changed, 1 insertion(+), 1 deletion(-)
fc9aca
fc9aca
diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c
fc9aca
index 0708d96..b96737c 100644
fc9aca
--- a/src/nm-connectivity.c
fc9aca
+++ b/src/nm-connectivity.c
fc9aca
@@ -498,7 +498,7 @@ nm_connectivity_init (NMConnectivity *self)
fc9aca
 		priv->curl_mhandle = curl_multi_init ();
fc9aca
 
fc9aca
 	if (priv->curl_mhandle == NULL) {
fc9aca
-		 _LOGE ("cnable to init cURL, connectivity check will not work");
fc9aca
+		 _LOGE ("unable to init cURL, connectivity check will not work");
fc9aca
 		return;
fc9aca
 	}
fc9aca
 
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From fe45631585e93e15c552194cf4ffd82cbe513ee1 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Fri, 2 Jun 2017 19:11:11 +0200
fc9aca
Subject: [PATCH 3/3] connectivity: fix scheduling periodic connectivity checks
fc9aca
fc9aca
commit a955639 (connectivity: don't do periodic checks on interval=0)
fc9aca
broke scheduling connectivity checks.
fc9aca
fc9aca
That is because the timer is on only scheduled if
fc9aca
nm_connectivity_check_enabled(), which in turn only returns TRUE
fc9aca
if curl_mhandle is set. However, nm_connectivity_init() would only
fc9aca
initialize curl_mhandle after update_config(), missing to schedule
fc9aca
the periodic task.
fc9aca
fc9aca
https://mail.gnome.org/archives/networkmanager-list/2017-May/msg00076.html
fc9aca
fc9aca
Fixes: a95563996f07641e9877eb1760cac24415b65070
fc9aca
(cherry picked from commit f1eb1619f173a092c49dfcd1d53ec356827b6e0a)
fc9aca
(cherry picked from commit e984d9eb36f7838df58c0606bd00efc10730d329)
fc9aca
---
fc9aca
 src/nm-connectivity.c | 29 +++++++++++++++--------------
fc9aca
 1 file changed, 15 insertions(+), 14 deletions(-)
fc9aca
fc9aca
diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c
fc9aca
index b96737c..6f16b28 100644
fc9aca
--- a/src/nm-connectivity.c
fc9aca
+++ b/src/nm-connectivity.c
fc9aca
@@ -486,27 +486,28 @@ nm_connectivity_init (NMConnectivity *self)
fc9aca
 	NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self);
fc9aca
 	CURLcode retv;
fc9aca
 
fc9aca
-	priv->config = g_object_ref (nm_config_get ());
fc9aca
-	update_config (self, nm_config_get_data (priv->config));
fc9aca
-	g_signal_connect (G_OBJECT (priv->config),
fc9aca
-	                  NM_CONFIG_SIGNAL_CONFIG_CHANGED,
fc9aca
-	                  G_CALLBACK (config_changed_cb),
fc9aca
-	                  self);
fc9aca
-
fc9aca
 	retv = curl_global_init (CURL_GLOBAL_ALL);
fc9aca
 	if (retv == CURLE_OK)
fc9aca
 		priv->curl_mhandle = curl_multi_init ();
fc9aca
 
fc9aca
-	if (priv->curl_mhandle == NULL) {
fc9aca
+	if (!priv->curl_mhandle)
fc9aca
 		 _LOGE ("unable to init cURL, connectivity check will not work");
fc9aca
-		return;
fc9aca
+	else {
fc9aca
+		curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETFUNCTION, multi_socket_cb);
fc9aca
+		curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETDATA, self);
fc9aca
+		curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
fc9aca
+		curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERDATA, self);
fc9aca
+		curl_multi_setopt (priv->curl_mhandle, CURLOPT_VERBOSE, 1);
fc9aca
 	}
fc9aca
 
fc9aca
-	curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETFUNCTION, multi_socket_cb);
fc9aca
-	curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETDATA, self);
fc9aca
-	curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
fc9aca
-	curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERDATA, self);
fc9aca
-	curl_multi_setopt (priv->curl_mhandle, CURLOPT_VERBOSE, 1);
fc9aca
+	priv->config = g_object_ref (nm_config_get ());
fc9aca
+
fc9aca
+	update_config (self, nm_config_get_data (priv->config));
fc9aca
+	g_signal_connect (G_OBJECT (priv->config),
fc9aca
+	                  NM_CONFIG_SIGNAL_CONFIG_CHANGED,
fc9aca
+	                  G_CALLBACK (config_changed_cb),
fc9aca
+	                  self);
fc9aca
+
fc9aca
 }
fc9aca
 
fc9aca
 static void
fc9aca
-- 
fc9aca
2.9.4
fc9aca