diff --git a/gio/gnetworkmonitorbase.c b/gio/gnetworkmonitorbase.c index 2494ca3da..5baf5fda7 100644 --- a/gio/gnetworkmonitorbase.c +++ b/gio/gnetworkmonitorbase.c @@ -168,10 +168,6 @@ g_network_monitor_base_can_reach (GNetworkMonitor *monitor, GSocketAddressEnumerator *enumerator; GSocketAddress *addr; - if (priv->have_ipv4_default_route && - priv->have_ipv6_default_route) - return TRUE; - if (priv->networks->len == 0) { g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NETWORK_UNREACHABLE, @@ -188,6 +184,14 @@ g_network_monitor_base_can_reach (GNetworkMonitor *monitor, return FALSE; } + if (priv->have_ipv4_default_route && + priv->have_ipv6_default_route) + { + g_object_unref (enumerator); + g_object_unref (addr); + return TRUE; + } + while (addr) { if (G_IS_INET_SOCKET_ADDRESS (addr))