mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-03-06 00:00:31 +01:00
connectivity: fix scheduling periodic connectivity checks
commita955639(connectivity: don't do periodic checks on interval=0) broke scheduling connectivity checks. That is because the timer is on only scheduled if nm_connectivity_check_enabled(), which in turn only returns TRUE if curl_mhandle is set. However, nm_connectivity_init() would only initialize curl_mhandle after update_config(), missing to schedule the periodic task. https://mail.gnome.org/archives/networkmanager-list/2017-May/msg00076.html Fixes:a95563996f(cherry picked from commitf1eb1619f1)
This commit is contained in:
parent
1618717170
commit
e984d9eb36
1 changed files with 15 additions and 14 deletions
|
|
@ -486,27 +486,28 @@ nm_connectivity_init (NMConnectivity *self)
|
|||
NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self);
|
||||
CURLcode retv;
|
||||
|
||||
retv = curl_global_init (CURL_GLOBAL_ALL);
|
||||
if (retv == CURLE_OK)
|
||||
priv->curl_mhandle = curl_multi_init ();
|
||||
|
||||
if (!priv->curl_mhandle)
|
||||
_LOGE ("unable to init cURL, connectivity check will not work");
|
||||
else {
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETFUNCTION, multi_socket_cb);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETDATA, self);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERDATA, self);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLOPT_VERBOSE, 1);
|
||||
}
|
||||
|
||||
priv->config = g_object_ref (nm_config_get ());
|
||||
|
||||
update_config (self, nm_config_get_data (priv->config));
|
||||
g_signal_connect (G_OBJECT (priv->config),
|
||||
NM_CONFIG_SIGNAL_CONFIG_CHANGED,
|
||||
G_CALLBACK (config_changed_cb),
|
||||
self);
|
||||
|
||||
retv = curl_global_init (CURL_GLOBAL_ALL);
|
||||
if (retv == CURLE_OK)
|
||||
priv->curl_mhandle = curl_multi_init ();
|
||||
|
||||
if (priv->curl_mhandle == NULL) {
|
||||
_LOGE ("unable to init cURL, connectivity check will not work");
|
||||
return;
|
||||
}
|
||||
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETFUNCTION, multi_socket_cb);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETDATA, self);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERDATA, self);
|
||||
curl_multi_setopt (priv->curl_mhandle, CURLOPT_VERBOSE, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue