diff options
Diffstat (limited to 'src/gclue-web-source.c')
-rw-r--r-- | src/gclue-web-source.c | 19 |
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; |