summaryrefslogtreecommitdiff
path: root/src/gclue-web-source.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gclue-web-source.c')
-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;