summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej S. Szmigiero <maciej.szmigiero@oracle.com>2023-01-06 00:35:30 +0100
committerMaciej S. Szmigiero <maciej.szmigiero@oracle.com>2023-01-07 22:00:20 +0100
commite123c1459dd46dd9f5535291a2ed7383222d81d5 (patch)
treebd51439b5d6440ebebe0cf0e923d18a11314f1d6
parentb281954817b0dbf7084221925422c2e9a8f162c6 (diff)
downloadgeoclue-e123c1459dd46dd9f5535291a2ed7383222d81d5.tar.gz
web-source: Locate / submit URLs are reachable if Internet is available
Let's regard locate / submit URLs as reachable if Internet is available, otherwise temporary DNS resolving problems can cause these to be regarded as unreachable until a new network change causes new probes to be sent.
-rw-r--r--src/gclue-web-source.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gclue-web-source.c b/src/gclue-web-source.c
index e3e9a37..4e1368d 100644
--- a/src/gclue-web-source.c
+++ b/src/gclue-web-source.c
@@ -227,6 +227,15 @@ refresh_accuracy_level (GClueWebSource *web)
}
}
+static gboolean
+get_internet_available (void)
+{
+ GNetworkMonitor *monitor = g_network_monitor_get_default ();
+
+ return g_network_monitor_get_connectivity (monitor) ==
+ G_NETWORK_CONNECTIVITY_FULL;
+}
+
static void
locate_url_checked_cb (GObject *source_object,
GAsyncResult *result,
@@ -243,6 +252,11 @@ locate_url_checked_cb (GObject *source_object,
return; /* WebSource instance is finalized */
}
+ if (!reachable && get_internet_available ()) {
+ g_debug ("Locate URL not reachable, but Internet is available, overriding");
+ reachable = TRUE;
+ }
+
web = GCLUE_WEB_SOURCE (user_data);
last_reachable = web->priv->locate_url_reachable;
web->priv->locate_url_reachable = reachable;
@@ -274,6 +288,11 @@ submit_url_checked_cb (GObject *source_object,
return; /* WebSource instance is finalized */
}
+ if (!reachable && get_internet_available ()) {
+ g_debug ("Submit URL not reachable, but Internet is available, overriding");
+ reachable = TRUE;
+ }
+
web = GCLUE_WEB_SOURCE (user_data);
last_reachable = web->priv->submit_url_reachable;
web->priv->submit_url_reachable = reachable;