hasInternetAccess method
Perform a one-shot internet reachability check.
Tries DNS lookups against configured addresses. Returns true if
at least one resolves successfully.
Implementation
Future<bool> hasInternetAccess() async {
for (final address in _config.lookupAddresses) {
try {
final result = await InternetAddress.lookup(address)
.timeout(_config.timeout);
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
_logger.debug('InternetChecker: DNS lookup for $address succeeded');
return _update(true);
}
} on SocketException catch (_) {
_logger.debug('InternetChecker: DNS lookup for $address failed');
} on TimeoutException catch (_) {
_logger.debug('InternetChecker: DNS lookup for $address timed out');
}
}
_logger.warning('InternetChecker: all DNS lookups failed — no internet');
return _update(false);
}