isAvailable method

Future<bool> isAvailable()

Implementation

Future<bool> isAvailable() async {
  try {
    var secondaryUrl = await AtLookupImpl.findSecondary(
        _atSign, _preference.rootDomain, _preference.rootPort);
    var secondaryInfo = AtClientUtil.getSecondaryInfo(secondaryUrl);
    var host = secondaryInfo[0];
    var port = secondaryInfo[1];
    var internetAddress = await InternetAddress.lookup(host);
    //#TODO getting first ip for now. explore best solution
    var addressCheckOptions =
    AddressCheckOptions(internetAddress[0], port: int.parse(port));
    return (await InternetConnectionChecker()
        .isHostReachable(addressCheckOptions))
        .isSuccess;
  } on Exception catch (e) {
    logger.severe('Secondary server unavailable ${e.toString}');
  } on Error catch (e) {
    logger.severe('Secondary server unavailable ${e.toString}');
  }
  return false;
}