From e123c1459dd46dd9f5535291a2ed7383222d81d5 Mon Sep 17 00:00:00 2001 From: "Maciej S. Szmigiero" Date: Fri, 6 Jan 2023 00:35:30 +0100 Subject: 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. --- src/gclue-web-source.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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; -- cgit v1.2.1